欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    优化App性能的20个建议.docx

    • 资源ID:86544437       资源大小:117.95KB        全文页数:5页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    优化App性能的20个建议.docx

    优化App性能的20个建议你的app为什么会卡?为什么占用大内存?应当怎么解决?今日这20条建议,给你 答案。. itmap的合理使用:使用Bitmap过后,就需要准时的调用recycle。方法来释放Bitmap占用的内存空间, 而不要等Android系统来进行释放。代码示例:/先推断是否已经回收if(bitmap != null && !bitmap.isRecycled()bitmap.recycle();bitmap = null;System.gc();.对常量使用static final修饰符static final int intVal = 42;static final String strVal = "Hello, world!”;将一个方法或类声明为final不会带来性能的提升,但是会关心编译器优化代码。举 例说,假如编译器知道一个getter方法不会被重载,那么编译器会对其采纳内联调用。3,静态方法代替虚拟方法假如不需要访问某对象的字段,将方法设置为静态,调用会加速15%到20%。这也是 一种好的做法,由于你可以从方法声明中看出调用该方法不需要更新此对象的状态。4.削减不必要的全局变量尽量避开static成员变量引用资源耗费过多的实例,比如Context,由于Context的引 用超过它本身的生命周期,会导致Context泄漏。所以尽量使用Application这种Context 类型。可以通过调用 Context.getApplicationContextOc Activity.getApplication。轻松得到 Application 对象。5,避开创建不必要的对象:就是避开创建短命的临时对象。削减对象的创建就能削减垃圾收集,进而削减对用 户体验的影响。例如:频繁操作一个字符串时,使用StringBuffer代替String。6 .对于全部全部基本类型的组合:int数组比Integer数组好,这也概括了一个基本领实,两个平行的int数组比(int,int) 对象数组性能要好许多。.避开使用浮点数。通常的阅历是,在Android设施中,浮点数会比整型慢两倍。7 .使用实体类比接口好假设你有一个HashMap对象,你可以将它声明为HashMap或者Map:Map mapl = new HashMapO;HashMap map2 = new HashMap();哪个更好呢?根据传统的观点Map会更好些,由于这样你可以转变他的详细实现类,只要这个类 继承自Map接口。传统的观点对于传统的程序是正确的,但是它并不适合嵌入式系统。 调用一个接口的引用会比调用实体类的引用多花费一倍的时间。假如HashMap完全适合 你的程序,那么使用Map就没有什么价值。假如有些地方你不能确定,先避开使用Map, 剩下的交给IDE供应的重构功能好了。(当然公共API是一个例外:一个好的API经常会 牺牲一些性能).访问成员变量比访问本地变量慢得多for循环:不要在for的其次个条件中调用任何方法反例:for(int i =0; i < this.getCount(); i+) 正彳列:int count = this.mCount; int count = this.getCount();for(int i =0; i < count; i+) .资源类对象在不使用的时候,应当准时关闭它们,便利它们的 缓存数据能够准时回收。例如:Cursor、File文件等都需要在finally中关闭资源性对象,避开在特别状况下资 源对象未被释放的隐患.注册广播接收器、注册观看者等需要在不使用的时候取消注皿/4AJ。例如:假设在Activity中,监听系统的电话服务,可以在Activity中定义一个PhoneStateListener的对象,同时将它注册到TelephoneManager服务中。对于Activity对 象,理论上要求Activity退出后该Activity的对象就会被释放掉。但是假如在释放Activity 对象时,遗忘取消之前注册的PhoneStateListener对象,则会导致Activity无法被GC回收。 假如不断的进出这个Activity,则最终会由于大量的Activity对象没有方法被回收而引起 频繁的GC状况,甚至导致。ut Of Memory。8 .有效的采用系统自带的资源。Android系统内置了大量的资源,比如字串、颜色定义、常用Icon图片、动画样式、 及简洁的布局,没有特别要求,资源可以在程序中直接引用。这样不仅削减内存的开销, 还可以削减apk的大小。9 .视图复用。使用ViewHolder实现ConvertView复用,这基本上是全部容器控件的处理方式,如ListView> GridView 等。10 .使用最优的数据类型。比较少的对象数时,ArrayMap替换HashMap的使用,避开使用枚举,枚举变量特别 便利,但不幸的是它会牺牲执行的速度和并大幅增加文件体积。11 .图片内存优化Android供应的多种位图格式中,最高的是RGB_8888,也是系统默认的位图格式, 其他几种都削减位图通道,可以削减内存开销,如一些局部图片、小屏幕手机或者对图 片质量要求不高的场景,均可以使用RGB_565,或者ARGB_4444等图像格式。图片缩放:inSampleSize> inScaled> inDensity 0 inTargetDensity位图内存重用:inBitmap的使用,可以结合LruCache实现。推举开源库:picasso、Glide. Android网络通信框架Volley。12 .对象池、线程池的合理使用。17.使用 IntentService替代 Service oIntentService优势:新开线程;挨次处理Intent;执行完自动退出。18 .尽量不要因一两个特性而使用大体积类库。19 .对象不用时最好显式置为Null可以削减GC开销。20 .多了解并使用类库。一些例子1. 当处理字串的时候,尽量使用String.indexOf。,String.lastlndexOf。等特别实现的方 法。这些方法都是使用C/C+实现的,比起Java循环快10到100倍。2. System.arraycopy方法在有JIT的Nexus One上,自行编码的循环快9倍。3. 包下的Formatter类,供应了 IP地址转换、文件大小转换等方法;DateFormat类,供应了各种时间转换,都是特别高效的方法。4. TextUtils类,对于字符串处理Android为我们供应了一个简洁有用的TextUtils类,假如处理比较简洁的内容不用去思索正则表达式不妨试试这个在的 类。5. 高性能MemoryFile类,对于I/O需要频繁操作的,主要是和外部存储相关的I/O 操作,MemoryFile通过将NAND或SD卡上的文件,分段映射到内存中进行修改处理, 这样就用高速的RAM代替了 ROM或SD卡,性能自然提高不少,对于Android手机而言 同时还削减了电量消耗。该类实现的功能不是许多,直接从Object上继承,通过川I的 方式直接在C底层执行。内存优化工具:推举内存分析工具:Memory Monitor 适用于Android Studio推举内存泄露分析工作:MAT适用于eclipse、Android Studio内存泄露监控工具:LeakCanary来源:(风少学院官网)欢迎一起沟通学习。

    注意事项

    本文(优化App性能的20个建议.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开