Android Performance
文章平均质量分 92
起个昵称那么难
这个作者很懒,什么都没留下…
展开
-
Android高性能编码 - 前言
前言本文主要阐述的内容本系列规范针对Android应用程序开发中,跟性能相关的编码问题和良好规范,基于编码实践场景,分为若干个主题篇进行阐述,并在未来随着Android平台发展和实践反馈中不断更新和扩展。在各个篇章中,你将看到笔者收集整理的细分专题,它们基于具体工程实践,提供一些示例或者建议,属于一种最佳实践(Best Practice)的呈现,并不代表唯一性和绝对性。具体的应用或者扩展,需要开发...原创 2018-03-07 20:15:58 · 178 阅读 · 0 评论 -
Top10 移动端安全问题
Top 10 Mobile Risks from 【Hacking Android】The following diagram shows the OWASP Top 10 Mobile Risks, which is a listof top 10 mobile app vulnerabilities.The following are the top 10 vulnerabilities an...原创 2018-05-06 21:25:58 · 1679 阅读 · 0 评论 -
Android高性能编码 - 第八篇 移动端安全规范
第八篇安全Android内建的安全机制可以显著地减少了应用程序的安全问题。通过在默认的系统设置和文件权限设置的环境下建立应用,可避免为一系列的安全问题寻找解决方案。一些帮助建立应用的核心安全的特性如下:l Android应用程序沙盒,将应用数据和代码的执行与其他程序隔离。l 具有鲁棒性的常见安全功能的应用框架,例如加密,权限控制,安全IPCl 使用改进的虚拟机等技术,减少了常见内存管理错误。...原创 2018-05-06 21:06:11 · 1412 阅读 · 0 评论 -
Android高性能编码 - 第七篇 Efficient Java与Android Lint
7.1 Efficient Java中的性能要点Effective Java是一本被广泛认可的著作,它指明了在写Java代码时兼顾可维护性与效率的方式。Android也是使用Java来开发的,书中的部分建议可能不适用,因为并非所有Java特性都有针对Android优化(比如说枚举,序列化等等),或者是因为移动设备的局限(例如Dalvik/ART)。不管怎样,书中的大部分规范是稍微修改下甚至不修改就...原创 2018-05-06 20:32:33 · 231 阅读 · 0 评论 -
Android高性能编码 - 第六篇 异步任务与多线程
第六篇异步任务与多线程6.1 ANR与异步任务ANR是Android系统对程序无响应的异常响应,从Android系统的角度来看,发生ANR的原因主要有三个方面:1. Activity/Fragment在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸);2. BroadcastReceiver在10秒内没有执行完毕;3. Service的生命周期方法中有...原创 2018-04-19 22:02:58 · 984 阅读 · 0 评论 -
Android高性能编码 - 第五篇 网络请求和数据解析
尽管现在项目中已经普遍采用okhttp等框架进行网络请求,但出于开发的高性能要求,我们仍有必要对一些网络请求的性能要点进行讨论,以便对网络请求中的整体编码和第三方框架的配置使用有更深入的认识。5.1 网络请求编码的基本要素当我们开始讨论网络请求时,从客户端的角度来说,主要涉及三个方面:客户端、请求、响应。从开发编码的角度来说,我们主要会关注请求和响应的几个具体要素,如下图所示。为了处理这些请求和响...原创 2018-04-13 22:09:57 · 837 阅读 · 0 评论 -
Android高性能编码 - 第四篇 layout加载UI优化
本篇对Android应用的UI渲染加载性能相关项进行阐述,这里的layout既包括使用xml文件定义的layout资源,也包括java代码动态创建的UI资源以及自定义组合资源,其中图片相关的部分已在第三篇进行集中阐述,这里不再细表,而是从一般意义上的UI界面加载层面进行探讨。4.1 Activity基类布局和子类布局的协调根据编码实践,我们通常会为Activity抽取基类,同时在基类中抽取父布局,...原创 2018-04-12 22:13:12 · 589 阅读 · 0 评论 -
Android高性能编码 - 第三篇 优化图片加载
图片加载是每个应用的基本功能,而图片对App整体性能的影响是不言而喻的,尤其是在程序加载大量图片和高分辨率图片时,最容易产生OOM异常,因此图片相关的编码都需要从性能的角度仔细考量。3.1 自定义图片加载的性能要点尽管我们普遍在应用中引入了第三方的图片加载库,但很多时候还会手动对局部的图片任务进行处理,包括临时加载避开第三方库的默认缓存、所选的第三方库不便于加载本地图片等,在此需要注意以下几个要点...原创 2018-03-31 19:05:05 · 316 阅读 · 0 评论 -
Android高性能编码 - 第二篇 数据库操作
第二篇数据库操作Android默认使用了SQLite数据库,在应用程序开发中,我们使用最多的无外乎增删改查。纵使操作简单,也有可能出现查找数据缓慢,插入数据耗时等情况。本篇内容将介绍一些提高的数据库性能的规范实践,帮助大家更高效地使用数据库。2.1 避免频繁的开关DB我们一般会在每次增删改查中开关数据库,对于可能频繁使用DB对象的情况,为了提高性能,在保证DB对象单例的情况下,可以对DB的开关进行...原创 2018-03-26 00:27:06 · 400 阅读 · 0 评论 -
Android高性能编码 - 第一篇 内存与对象(二)内存高效利用
1.2 面向对象与内存的高性能编码每当我们在代码中创建一个新对象的时候,系统就会尝试分配一个空间将它保存到内存中,但每个应用可以分配的内存空间是有限的。上一节我们已经阐述了如何避免内存泄露,本节我们主要阐述如何在编码中控制内存的占用,提升效率并减少垃圾回收。1.2.1 Data types数据类型1.2.1.1 Autoboxing自动装箱特性,使得基本数据类型自动转为对应的包装类型。比如Inte...原创 2018-03-10 21:15:27 · 264 阅读 · 0 评论 -
AndroidWiki - App启动流程和性能优化精要
一、主页数据业务流程重构图一:通行的缓存+刷新数据业务示例1.1 调整线程机制这个修改点需要排查和解决包含但不是限于以下五个问题:1,各线程业务由于历史原因,在单独子模块执行,没有做统一的通知/回调机制,获取执行结果采用土笨的全局标志和轮询的方式,极不合理。此处为紧密流程,应该采用接口回调。2,全局标志位的作用域太大,不安全。在多人开发和维护的项目中,隐患非常大。3,不同线程对同一标志位的操作没有...原创 2018-03-15 21:03:17 · 311 阅读 · 0 评论 -
Android高性能编码 - 第一篇 内存与对象(一)防止内存泄露
第一篇内存与对象内存表现是Android性能的重要指标,影响着应用整体的运行性能,需要我们高度关注。对于开发者来说,我们一方面要防止内存泄露的发生,另一方面则需要不断的优化编码,减少内存占用,提升内存对象的使用效率。1.1 防止内存泄露尽管Java运行环境自带了GC回收机制,但实际编码中由于默认的强引用关系,以及Android组件频繁的生命周期转换,资源无法及时释放以致内存泄露的情况屡见不鲜。本篇...原创 2018-03-07 20:27:03 · 322 阅读 · 0 评论 -
Android性能调试方法工具集合 - 持续更新
第一篇_布局优化一,影响面布局的设计和编码影响是多方面的,包括界面启动,交互相应,内存,GC二,思路和要求整体布局思路:要求layout呈现扁平化,宽而浅的效果。基本要求:1. 界面layout框架绘制控制在1次以下2. 大容器ViewGroup控制在3次绘制3. View控制4x次的绘制4. 一般主页等重度页4x绘制控制在整个layout的...原创 2018-05-14 11:50:19 · 6365 阅读 · 0 评论