-
[Android技术专题]APK瘦身看这一篇文章就够了
前言
之前我在微信群里面有说到,随着Android开发越来越成熟,关于Android方面的技术文章越来越多,作为开发者不缺资源,缺乏的是系统的知识和指导,对于学生和上班族来讲,更缺乏筛选信息的时间。从某个角度来讲,精心筛选整理网络上的优质文章并形成专题,如果需要学习某方面的知识只需要看这一篇文章就够,那意义会比写一篇纯技术文章会有价值得多。
出于能够更便捷、高效获取优质资源的角度考虑,写一系列专题的想法就诞生了,结合自己阅读过的技术文章和实际工作经验,将平时收集的优质技术文章按照某个方面整理成一系列的专题,比如APK瘦身、插件化、程序架构、性能优化、自定义view、增量升级、移动开发各种技术解决方案等。这是我目前能够想到的除了写书之外最值得做的一件事情了。
这个系列从APK瘦身专题开始,后面会不定期推出其它专题,发过的专题也会不断更新。
APK瘦身的价值
APK瘦身严格来讲不算是对应用性能的优化,应该算是对程序体验的优化。APK瘦身的价值主要有几点:
省流量:特别是在4G网络下,更多的移动流量表示需要花费更多的钱(别指望着用户一个月1、2G的流量专门给你腾出几十M来用于下载安装包);
给用户一个好印象,试想用户在安装你的程序需要很长的时间时,不仅会影响到他的心情,更是在浪费他的生命;
如果你的APK是预置到设备中,更大的APK表示需要占用更多的存储空间,也会增加烧录的时间。
从哪些方面入手
一个APK实际上就是一个压缩文件,解压后可以看到通常包含如下几种类型的文件或文件夹:
classes.dex源码;
编译生成的二进制资源文件resources.arsc;
- 2022-09-09 06:10:02下载
- 积分:1
-
Grallery3DDemo
Android Grallery 3D 的使用上的一个Demo,有一定参考价值。(Android Grallery 3D on the use of a Demo, has a certain reference value.)
- 2013-08-28 18:48:57下载
- 积分:1
-
地图定位实例
地图定位实例,基于地图SDK的开发实例,简单明了易于理解,尤其适合对于LBS等相关方向有学习兴趣的新手,是一个相当不错的教程性干货。
- 2022-01-24 16:16:00下载
- 积分:1
-
APII
Android应用,个人生活助手类,支持天气地点照片等状态显示与分享至微信朋友圈(Android applications, personal life helper classes to support weather locations and sharing photos and status display to the micro-channel circle of wechat)
- 2013-12-01 01:42:24下载
- 积分:1
-
aide破解完整版
aide破解完整版
- 2019-02-23下载
- 积分:1
-
moshoutafang2
在电脑上玩过魔兽塔防游戏的,一直会记得当年这款游戏的火爆程度。现在,在安卓盛行的今天,我们也终于得到了android手机版的魔兽塔防游戏源码,这对于android初中级游戏开发者来说,是难得的参考资料,里面运用到了很多Android方方面面的技术,精彩不容错过(Played Warcraft tower defense games on the computer, always will remember the popular level then the game. Now, in Andrews prevalent today, we finally got android mobile version of Warcraft tower defense game source code, which for android middle-class game developers, is a rare reference, which applied to a lot of technical aspects of Android, wonderful Do not miss)
- 2014-04-18 08:22:47下载
- 积分:1
-
三级联动查询
适用省市区的查询,适用spring控件,分为三个
- 2022-05-13 16:57:09下载
- 积分:1
-
H264Android_CPP
H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。
程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。
在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。
不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。
如果程序崩溃退出,优先考虑:
1)是否是baseline
2)byte [] NalBuf = new byte[40980] 缓冲区是否溢出。
如果有B帧,那肯定不是baseline。
(H264 Decoder C++ version decode source)
- 2012-06-01 19:18:23下载
- 积分:1
-
Dingwei
用android开发的定位程序,能够实时显示速度,海拔等,学习android定位必备(android location)
- 2012-02-26 23:07:01下载
- 积分:1
-
prjHello
Google Android SDK开发范例大全(完整版)虽然半行代码都没有写,但向导却帮忙写好了程序进入点、布局配置、字符 串常数、应 用程序访问权限等, 除了可作为程序模板之外, 也是 Android 手机程 序的最佳学习范例。让 我们回过头来看看刚才 Android 项目建立向导帮忙做了哪些工作, 以此来 了解 Android 应 用程序的生命周期及其文件组成方式; 首先, 展开 (package helloworld.irdc.eracom.com.cn import android.app.Activity import android.os.Bundle public class HelloWorld extends Activity { * Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) setContentView(R.layout.main) } } )
- 2015-12-22 12:23:05下载
- 积分:1