
APP性能优化
xjbclz
有多年APP与手机软件开发和管理工作经验,出版了两本书:《Android APP开发实战》和《App Inventor2定制与二次开发》
展开
-
APP开发实战117-APP图片优化
30.1APP大小优化30.1.1图片优化1 尽量使用Android和iOS系统自带的图片,系统没有的图片,才预置在APP中。2 减少预置图片的个数,如AndroidAPP可以只预置一套XHDPI密度的图片,只有个别的小图标,如桌面icon,每种密度的都预置一张。iOS APP只预置2X和3X的图片。3 普通的位图在不同分辩率的设备上伸缩时,很容易变形,APP内常会预置内容一样,但原创 2016-07-25 22:13:08 · 2248 阅读 · 0 评论 -
Android中Context的理解与使用技巧
Context类,时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法。但是不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Context实例对象呢?Context,中文直译为“上下文”,SDK中对其说明如下:Interface to global infor转载 2016-11-05 16:47:35 · 277 阅读 · 0 评论 -
ListView的性能优化之convertView和viewHolder
最近碰到的面试题中经常会碰到问”ListView的优化”问题。所以就拿自己之前写的微博客户端的程序做下优化。自己查了些资料,看了别人写的博客,得出结论,ListView优化大致从以下几个角度:1.复用已经生成的convertView;2.添加viewHolder类;3.缓存数据(图片缓存);4.分页加载。一、复用convertView首先讲下ListView的原转载 2016-09-25 13:55:27 · 251 阅读 · 0 评论 -
Android布局优化
前言本篇文章为Android优化的布局部分,该部分应该是Android中很重要的,无论是在自定义控件中,还是在简单的书写布局时,都应该尽量遵循一些优化原则,这样布局的绘制效率才会更高,体验才能更好。一 优化layout的层级Layout结构如果太复杂,Android的绘制过程就会很复杂,measure过程就会很复杂,我分析的View绘制机制中详细介绍了整个测量、布局和绘转载 2016-09-25 13:50:27 · 445 阅读 · 0 评论 -
正确使用 Android 性能分析工具——TraceView
前面唠叨最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方。因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界面下方数据指标的值代表什么意思…以前我用StopWatch类来分析性能,现在觉得弱爆了…不过有些地方StopWatch工具类还是很简单好用的~网上可以找了很多博客来介绍这个工具转载 2016-09-19 17:05:30 · 350 阅读 · 0 评论 -
Android客户端性能优化(魅族资深工程师毫无保留奉献)
Android客户端性能优化(魅族资深工程师毫无保留奉献) 阮小乙 发布于2013-03-05 2233 移动 Android本文由魅族科技有限公司资深Android开发工程师degao(嵌入式企鹅圈原创团队成员)撰写,是degao在嵌入式企鹅圈发表的第一篇原创文章,毫无保留地总结分享其在领导魅族多个项目开发中的Android客户端性能优化经验,极具实践价值!众所周知,一个好的产品转载 2016-09-19 15:29:27 · 453 阅读 · 0 评论 -
手机淘宝 521 性能优化项目揭秘
原创 2015-12-06 手淘团队 InfoQ又是一年双十一,亿万用户都会在这一天打开手机淘宝,高兴地在会场页面不断浏览,面对琳琅满目的商品图片,抢着添加购物车,下单付款。为了让用户更顺畅更方便地实现这一切,做到“如丝般顺滑”,双十一前夕手机淘宝成立了“521”(我爱你)性能优化项目,在日常优化基础之上进行三个方面的专项优化攻关,分别是1)H5页面的一秒法则;2)启动时间和页面帧率提转载 2016-09-17 15:42:46 · 1131 阅读 · 0 评论 -
APP开发实战124-APP UI性能优化
30.4UI性能优化1 通过标签嵌入布局。 2 使用Fragment复用布局。 3 通过标签减少布局层次。 4 使用ViewStub减少创建布局时加载的资源。 5 使用android:visibility="gone"代替android:visibility="invisibility",减少布局时要处理的控件。 6 在某个方向上使用了weight ,那原创 2016-07-31 17:46:02 · 338 阅读 · 0 评论 -
APP开发实战122-APP防止内存泄露
30.3.2防止内存泄露1 使用Service时,尽量使用IntentService,这样可以避免忘记关闭服务。 2 避免一个对象被比它生命周期长的对象持有或引用,这样会导致该对象无法被释放,内存泄露。如对一个Activity Context保持长生命周期的引用,即使这个Activity已经被销毁了,但相关内存无法被释放。非静态内部类的静态实例容易造成内存泄漏,这个静态实例的生原创 2016-07-31 17:43:40 · 459 阅读 · 0 评论 -
APP开发实战127-APP性能优化工具
30.7性能优化工具30.7.1Android Studio自带工具1 选择Analyze->InspectCode,可以使用Lint对代码、布局文件和资源文件,从语法、内存使用、性能和冗余性等方面进行静态分析,结果如下: 2 选择Tools->Android->AndroidDevice Monitor在此界面中,可以选择Hierarchy Viewer进行布局优化选原创 2016-08-01 21:01:21 · 444 阅读 · 0 评论 -
APP开发实战126-APP运行速度优化
30.6运行速度优化1 网络流量优化,预置资源优化、代码优化和UI性能优化可以有效降低电量消耗。 2 Short数组排序远快于其他类型数组,在条件允许的情况下,优先使用Short数组。 3 能用32位类型,不要用64位类型。 4 能用整型,不要使用浮点数 。 5 能用乘法,不用除法 。 ANR的阈值:按键触摸事件派发超时ANR,一般阈值为5s。广原创 2016-08-01 20:59:06 · 412 阅读 · 0 评论 -
APP开发实战125-APP 电量优化
30.5电量优化1 网络流量优化,预置资源优化、代码优化和UI性能优化可以有效降低电量消耗。 2 使用定位功能时,降低定位频率,可以降低电量消耗。 3 使用网络定位功能,比通过GPS定位省电。 4 降低传感器的采样频率,可以降低电量消耗。 5 合理设置屏幕亮度的等级和亮屏时间,可以减少电量消耗。原创 2016-07-31 17:47:14 · 445 阅读 · 0 评论 -
APP开发实战123-APP防止OOM
30.3.3防止OOM1 如作到了有效节省内存和防止内存泄露,那就极大降低了OOM发生的概率。 2 不要加载过大的Bitmap对象,采用降低图片质量的方法减少内存消耗。 3 批量加载数据时,不要加载的太多,同时进行缓存设计。 4 在做一些大内存分配等可疑内存操作时进行trycatch操作,避免不必要的应用闪退。(可以通过getMemoryClass()来获取APP被原创 2016-07-31 17:44:30 · 315 阅读 · 0 评论 -
APP开发实战121-APP内存优化节省内存
30.3.1节省内存1 当UI不可见时,释放相关资源:在Activity的onPause函数中停止动画、停止视频播放和停止获取和传递设备当前的经纬度给服务器等。在Activity的onStop函数中,取消当前页面的网络请求等。在onTrimMemory() 方法中,接收到TRIM_MEMORY_UI_HIDDEN信号时,释放 UI 使用的内存资源,如图片占据的内存,这样减少内存消耗原创 2016-07-31 17:41:19 · 451 阅读 · 0 评论 -
APP开发实战119-APP代码优化
30.1.3代码优化1 删除无用的代码和文件,这样不但可以减少APP的大小,还可以加快编译速度。2 在集成三方库的时候,也要权衡下库的大小是否在可接受范围内;尤其是如果只使用看库的某一项功能,而要集成一个几百K的库时,可以考虑自行实现这个功能,以减少APP的大小。原创 2016-07-25 22:14:44 · 365 阅读 · 0 评论 -
APP开发实战120-APP网络流量优化
30.2网络流量优化1 目前用户基本都是通过网络下载APP和更新APP版本,减少APP大小,就可以有效减少用户消耗的网络流量。2 目前友盟已经支持增量升级APP的功能,这样即使APP有10M大小,但如果改动部分只有10K,利用增量升级功能,用户只需下载10K的数据,就可以实现升级APP的版本。最好利用增量升级功能实现APK的更新。3 APP和服务器端传输数据时,使用数据量小的数据格式,原创 2016-07-25 22:15:40 · 1895 阅读 · 0 评论 -
APP开发实战118-APP音频文件优化
30.1.2音频文件优化1 尽量使用Android和iOS系统自带的音频文件,系统没有的图片,才预置在APP中。2在大多数情况下,普通用户是无法区分不同格式的音频文件的音质差异,但压缩率高的文件尺寸比压缩率低的少许多,所以APP可以内置压缩率高的音频文件,以减少APP的大小。原创 2016-07-25 22:13:59 · 403 阅读 · 0 评论 -
APP开发实战178-查看和删除多余的依赖库
Android Studio的“Project”视图显示了一个名为“External libraries”的区域,在这里,可以查看项目使用的所有库,包括任何传递依赖项,如下所示:从这里看到所有模块的依赖库,如想看其中某个模块的依赖库,如想看一下模块liba_odoo_api的依赖库:可以使用如下命令:./gradlew -q :liba_odoo_api:dependencie原创 2017-08-29 22:08:22 · 8499 阅读 · 0 评论