Android性能优化
小小米乐
这个作者很懒,什么都没留下…
展开
-
Android性能优化——线程优化
Android线程调度机制线程调度机制分时调度模型:所有的线程轮流获得CPU使用权,平均分配每个线程占用的CPU时间抢占式调度模型:优先让可运行池中的优先级高的线程占用CPU,优先级相同随机选择一个线程Android线程调度机制Android的线程调度机制是抢占式调度模型线程优先级(nice):默认情况下,新创建的线程的优先级默认与母线程一致线程分组:Android还分前台线程与后台线程Android异步方式Thread:直接创建一个线程AsyncTask:为UI线程与工作线程之间原创 2020-06-19 10:09:11 · 495 阅读 · 0 评论 -
Android启动流程以及分类
Android启动流程以及分类启动流程以及分类开机流程开机|BootLoader(引导芯片)|LinuxKernel(init.rc)|init进程 id为1|zygote进程|JVM,SystemServer等|Binder(线程池) SystemServiceManager ActivityManagerService 其他各种服务|Launcher应用启动分类:冷启动 热启动 温启动冷启动:是指应用从头开始启动:系统进程在冷启动后才创建应用进程:流程:原创 2020-06-16 11:13:22 · 151 阅读 · 0 评论 -
APK瘦身
图片资源的优化资源压缩其他优化图片资源优化图片选择顺序VD:使用矢量图片例如:SVG格式的,不管适配什么屏幕,只需要一份图片即可WebP:WebP体积更小,4.2.1+支持透明度PNG:有透明度,渐变,阴影的情况下选择pngJPG:WebP转换方式Android Studio 选中图片-右键 -convert to webp 即可如果图片比较多,就采用工具批量转换下载WebP转换工具,进行图片统一压缩https://developers.google.com/speed.原创 2020-05-28 17:38:57 · 177 阅读 · 0 评论 -
Android数据传输加密
对称加密采用单密钥加密,加解密密钥同一份代表算法:DES、3DES、AES、RC2、RC4优点:加解密效率高,算法简单,适合加密大量数据。缺点:密钥维护复杂,泄漏后就没有安全性可言非对称加密非对称加密公私钥,一个密钥用于加密,另外一个解密代表算法:RSA、ECC优点:安全性高,由公钥无法推导私钥,适应网络传输场景缺点:加密效率偏低HTTP/HTTPSHTTP/HTTPS 请求与防抓包APP网络应用场景使用http,不做任何加密相当于裸奔,初级工程师都可以轻易窥探你全部的业原创 2020-05-27 14:03:44 · 1013 阅读 · 0 评论 -
HTTP/HTTPS 请求与防抓包
TCP/IP分层TCP/IP的分层共分为四层:应用层、传输层、网络层、数据链路层;应用层:向用户提供应用层服务时的通讯活动(ftp、dns、http)传输层:网络连接中两台计算机的数据传输(tcp、udp)网络层:处理网络上流动的数据包,通过怎样的传输路径把数据包传送给对方(ip)网络链路层:与硬件相关的网卡、设备驱动等等HTTP/HTTPSHTTPHyperText Transfer Protocol (超文本传输协议) 被用于在Web浏览器和网站服务器之间传递信息,在TCP/IP中处原创 2020-05-26 16:27:50 · 4113 阅读 · 0 评论 -
proguard混淆与防反编译
代码混淆代码混淆也只是加大反编译成本,不能真的防反编译。最大的功能是对代码的压缩与优化。Proguard配置:android { compileSdkVersion 25 defaultConfig { applicationId "mile.com.jobservicedemo" minSdkVersion 23 targetSdkVersion 25 versionCode 1 versionName原创 2020-05-26 12:00:02 · 909 阅读 · 0 评论 -
Android Dex文件编译过程
Java源码编译:通过javac将源码编译为.class文件多DEX分包:脚本将类根据一定规则划分到住dex和从dex中,生成配置文件proguard优化混淆:对.class文件进行压缩、优化、混淆处理转换为dex文件:dx\d8将.class文件转换为dex文件Android dex编译流程DEX格式结构图详情了解:一篇文章带你搞懂DEX文件的结构MutiDex方案背景64k应用限制: Conversion to Dalvik format failed: Unable to ex.原创 2020-05-26 11:10:19 · 1259 阅读 · 0 评论 -
APK构建流程
APK构建流程aapt 编译资源文件生成 R.java 并打包资源文件Java compiler Java编译器 编译Java代码与aidl 成.class文件dex工具把.class文件编译成.dex文件apkbuilder 把上面的文件打包成.apk包jarsigner给apk包签名zipalign 字节码优化aapt/aapt2:Android资源打包工具(Android sdk 下build-tools/27.0.2/下)全称:Android Asses Packaging To原创 2020-05-25 18:04:54 · 239 阅读 · 0 评论 -
Android内存优化
Android的内存优化必须了解JVM虚拟机的GCJava虚拟机Java虚拟机是一台“抽象的计算机”,它拥有自己的处理器,堆栈,寄存器以及相应指令系统;Java虚拟机屏蔽了与具体操作系统相关的平台信息,使得Java程序只需要生成在该虚拟机运行的目标代码,就可以在多平台上运行;虽然叫Java虚拟机,但在它之上运行的语言不仅又Java,kotlin,Groovy,Scala等都可以运行;编译时环境Activity.java|Java编译期|Activity.Class运行时环境Activi原创 2020-05-23 18:45:36 · 167 阅读 · 0 评论 -
布局渲染流程原理及优化
CPU/GPUCPU作为“中央处理器”,除了要负责逻辑计算外,还需要做内存管理,显示操作,因此随着各种复杂App的出现,其实际运输的性能会大打折扣。设计原由:为了提高图形显示小路以及复杂的图形,设计出了GPU.主要功能:为了帮助CPU分担图形显示XML 布局显示至屏幕流程<TextView width="">|LayoutInflater加载进内存|CPU计算,处理成位图|CPU将图形交给GPU|GPU对图形进行删格化|显示器显示FPS12fps:画面帧数高原创 2020-05-23 14:31:41 · 211 阅读 · 0 评论 -
Android代码优化
代码未优化造成的问题在构建App时,我们经常需要引用一些第三方的sdk,而且项目业务越多,引用的第三方也越多,有些第三方会要求我们在Application的onCreate方法中对其初始化。这意味着:在application的onCreate方法中执行时间会越长,首个Activity布局的渲染时间也会相应的拉长。同理,如果Activity的onCreate,onStart,onResume方法中执行的任务时间过长,同样也会导致布局被渲染的时间拉长。这样直接导致的问题就是,用户会感觉页面迟迟没有加载出来,原创 2020-05-23 13:41:27 · 251 阅读 · 0 评论 -
Android App 冷/热/暖 启动
Android App 启动App 一般启动是从Launcher 启动的,App启动一般分为冷/热/暖三种启动情况冷启动:程序从头开始,系统没有为该程序创建进程。一般场景:程序安装后的第一次启动;应用程序被系统完全终止后再打开;热启动:此时程序仍然驻留在内存中,只是被系统从后台带到前台,因此程序可以避免重复对象初始化,加载布局和渲染。需要注意的是,如果程序的某些内存被系统清楚,比如调用onTrimMemory方法,则需要重新创建这些对象以响应启动事件。暖启动:它包含热启动和冷启动一系列的操作子集,原创 2020-05-22 14:50:11 · 1239 阅读 · 0 评论