《Android应用性能优化》第一章 Java代码优化
博客专区 > kim366 的博客 > 博客详情
《Android应用性能优化》第一章 Java代码优化
kim366 发表于2年前
《Android应用性能优化》第一章 Java代码优化
  • 发表于 2年前
  • 阅读 2
  • 收藏 0
  • 点赞 2
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

1.1 Android执行代码的流程
       Android开发者使用Java,不过Android平台不用Java虚拟机来执行代码,而是把应用编译成Dalvik字节码,使用Dalvik虚拟机来执行。Java代码仍然编译成Java字节码,但随后Java字节码会被dex编译器(dx, SDK工具)编译成Dalvik字节码,最终,应用只包含Dalvik字节码, 而不是Java字节码。
      
       apk文件只是简单的zip压缩文件,可以使用常见的压缩工具查看apk文件的内容。

       虚拟寄存器是指实际上非真实的硬件寄存器,也就是Dalvik虚拟机使用的寄存器。

       在Android2.2和更高版本中引入了JIT(实时编译器),Dalvik JIT编译器把Dalvik字节码编译成本地代码,这可以明显加快执行速度。因为:
      本地代码由CPU执行,而不必由编译器解释执行。
      本地代码可以为特定架构予以优化。


1.2 从递归到迭代
      选择最佳算法。
      基于性能方面的考虑,在代码的关键路径上,要尽量避免内存分配。

     
1.3 缓存结果
      比如使用SparseArray比使用HashMap效率更高。
      在合适的地方使用LrcCache进行缓存。


1.4 API等级
      应用中manifest文件中使用下面两个属性:
      android:minSdkVersion
      android:maxSdkVersion
      根据属性指定对应的方法操作。例如
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES_HONEYCOMB){
             sparseArray.removeAt(1); 
      }else{
             int key = sparseArray.keyAt(1);
             sparseArray.remove(key);
      }


1.5 数据结构
      好的算法和数据结构是实现快速应用的关键。  
     1. 好的算法和数据结构是实现快速应用关键。
     2. 尽量使用考虑到优化的数据结构,如LruCache, SparseArray, SparseBooleanArray, SparseIntArray, Pair。
     3. 使用现有的类Arrays, Collections完成一些基本操作。
     4. 使用StringBuilder代替String。


1.6 响应能力
     关键点:要让用户感觉到快。优化的原则是保持应用的持续响应。
     处理方式:
     1. 延迟创建对象。
     2. 降低布局复杂度。使用RelativeLayout代替嵌套LinearLayout, 尽可能保持“扁平化布局”。尽量减少创建对象的数量,让事件处理速度加快。
     3. 可以通过把操作转移到非主线程来加快响应速度。
     4. 通过StrictMode分析速度缓慢原因。网络和文件操作放到子线程中完成。


1.7 SQLite
      1. 充分考虑数据库创建,事务处理,检索查询等方式。  






  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 129
码字总数 0
×
kim366
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: