高效开发 Android App 的 10 个建议
2019独角兽企业重金招聘Python工程师标准>>>
摘要: 假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比、耗电、耗内存。接下来就会得到用户的消极评论,最后名声也就臭了。即使你的应用设计精良、创意无限也没用。 ...
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比、耗电、耗内存。接下来就会得到用户的消极评论,最后名声也就臭了。即使你的应用设计精良、创意无限也没用。 耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功。这就是为什么在开发中确保最优化、运行流畅而且不会使Android系统出问题 是至关重要的了。这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试。即使高效的代码也是需要时间来运行。今天这篇文章我们就讲讲怎 么尽可能地缩短运行时间,以及如何开发用户喜欢的App。 高效地利用线程建议一:怎么在后台取消一些线程中的动作我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响。会导致程序陷入卡顿、死掉甚至会发生系统错误。 为了加快响应速度,需要把费时的操作(比如网络请求、数据库操作或者复杂的计算)从主线程移动到一个单独的线程中。最高效的方式就是在类这一级完成 这项操作,可以使用AsyncTask或者IntentService来创建后台操作。如果选择使用IntentService,它会在需要的时候启动起 来,然后通过一个工作线程来处理请求(Intent)。 使用IntentService时需要注意以下几点限制:
建议二:怎么保持响应不发生ANR从UI线程中移除费时操作这个方式还可以防止用户操作出现系统不响应(ANR)对话框。需要做的就是继承AsyncTask来创建一个后台工作线程,并实现doInBackground()方法。 还有一种方式就是自己创建一个Thread类或者HandlerThread类。需要注意这样也会使App变慢,因为默认的线程优先级和主线程的优先级是一样的,除非你明确设定线程的优先级。 建议三:怎么在线程中初始化查询操作当查询操作正在后台处理时,展示数据也不是即时的,但是你可以使用CursorLoader对象来加快速度,这个操作可以使Activity和用户之间的互动不受影响。 使用这个对象后,你的App会为ContentProvider初始化一个独立的后台线程进行查询,当查询结束后就会给调用查询的Activity返回结果。 建议四:其它需要注意的方面
优化设备的电池寿命如果应用很费电,请不要责怪用户卸载了你的应用。对于电池使用来说,主要费电情况如下:
建议五:怎么优化网络
建议六:怎么优化应用在前端的工作
建议七:怎么优化工作在前台的应用
建议八:其它注意事项
实现低内存占用UI建议九:怎么找到布局显示问题当我们为布局单独创建UI的时候,就是在创建滥用内存的App,它在UI中会出现可恶的延时。要实现一个流畅的、低内存占用的UI,第一步就是搜索 你的应用找出潜在的瓶颈布局。使用Android SDK/tools/中自带的Hierarchy Viewer Tool工具。 还有一个很好的工具就是Lint,它会扫描应用的源码去寻找可能存在的bug,并为控件结果进行优化。 建议十:如何解决问题如果布局显示结果发现了问题,你可以考虑简化布局结构。可以把LinearLayout类型转化成RelativeLayout类型,降低布局的层级结构。 做到更加完美并不断优化尽管以上的每条建议看起来都是很小的改进,但是如果它能成为你日常代码的一部分,那么你就会看到意想不到的结果。要让Google Play看到更多杰出的、流畅的、更快速、更省电的应用,向Android走向完美的目标迈进一步。 |
转载于:https://my.oschina.net/u/1584571/blog/220722
高效开发 Android App 的 10 个建议相关推荐
- 高效开发Android App的10个建议
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用 设计精良.创意无限也没用. 耗电或者内存占用 ...
- 高效开发 Android App 的 10 个建议(转)
文章写的非常好,值得大家好好研究研究,仔细分析一下. 引文地址: http://www.cnblogs.com/xiaochao1234/p/3644989.html 假如要Google Play上做 ...
- 巧用第三方快速开发Android App 热门第三方SDK及框架
巧用第三方快速开发Android App 热门第三方SDK及框架 历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了 项目地址:巧用第三方快速开发Android App ...
- android studio 开发android app 真机调试
大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...
- Visual Studio 2015开发Android App问题集锦
Visual Studio 2015开发Android App 启动调试始终无法完成应用部署的解决方案 创建一个Android App项目后,直接启动调试发现Visual Studio Emulato ...
- php android 微信支付,Android_Android实现微信支付功能,开发Android APP微信支付功能, - phpStudy...
Android实现微信支付功能 开发Android APP微信支付功能,需要完成三个步骤:第一步生成预支付订单.第二步生成微信支付参数.第三步调起微信APP支付.除了需要审核通过的APP应用外,还需要 ...
- android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程
写在前面本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快 ...
- 【笔记】golang开发android app小记
golang开发android app小记 Google和Oracle打过Java的官司以后就开始慢慢转kotlin了.从JVM虚拟机打官司,改成android用JVM从堆栈平衡转寄存器模式,再到语言 ...
- BeeWare打包安卓apk文件,Python高效开发安卓app
用Python框架BeeWare 开发安卓app: 提示:运行Python 3.7或更高版本 例如: [** ] 作者使用的Pycharm编译器 Pycharm安装与使用教程已过滤 ~ ~ ~ 搭建B ...
最新文章
- 链表 + 数组模拟链表
- 【Netty】ByteBuf--Netty的数据容器
- js 数组 实现 完全树_JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个技巧
- 关于CRTP(Curiously Recurring Template Prattern)的使用
- VB.Net to C Sharp Converter有用吗?
- cad缩小了怎么还原_新手必备,CAD常用50个技巧
- xlrd,xlwt模塊
- 第二部分:浅析 Linux 初始化 init 系统:upstart
- C# 动态语言扩展(学习笔记)
- js array 删除指定元素_JS数组
- 数学知识点回顾(三)
- UVA11292 HDU1902 POJ3646 The Dragon of Loowater【贪心】
- vsc写vue生成基本代码快捷键_Vscode添加用户代码实现基础模板快速调用
- 华为matepadpro可以用云电脑吗_放弃台式机,改用华为云电脑,再手机投屏到显示器,这样可行吗?...
- GMSK的调制与解调
- Linux面板对Linux系统维护(Linux运维)全网最详细
- 软件测试缺陷报告的5c标准
- 笔记本电脑硬件升级-低成本、大幅提升体验
- 分享美容护肤门店预约下单小程序开发制作功能介绍
- 总结了Linux系统中常用的命令