Android 开发的25个建议

原文链接:https://medium.com/@laanayabdrzak/android-development-some-of-the-best-practices-27722c685b6a#.x3b8wsvz9

向原创致敬

在开发了几个项目之后我决定写篇文章分享一下一路走来的经验教训。

  • 在使用任何第三方库之前都要三思,这件事非常严肃。
  • 除非必须,不要使用数据库。
  • 你可以尝试使用realm(第三方数据库),这个真的不错。
  • 项目很快就会达到65k方法,真的很快。此时可以求助Multidex。
  • RxJava是AsyncTask的最佳替代,而且它远不止于此。
  • Retrofit是最好用的网络库。
  • 不要自己写Http客户端,可以用Volley或OkHttp。
  • 使用RetroLambda缩减代码。
  • 我能想到人生最cool的事,就是把RxJava、Retrofit和RetroLambda绑在一起。
  • EventBus挺好用,但我不会用太多,因为代码会变得很纠结。
  • 通过功能分包,而不是通过层。
  • 不要在UI线程中执行逻辑代码,不然可能会ANR。
  • 使用Lint检查Layout层级可以帮你发现没用的View,兴许可以去掉。
  • 使用Gradle以及默认项目结构。
  • 把密码与敏感数据放在gradle.properties里。(译者注:或许更好的方式是把这些数据放在local.properties里,然后把这个文件加进.gitignore)
  • 使用styles来避免在Layout文件中写重复代码。
  • 不要让ViewGroup层级太多。(会过度绘制)
  • 监控电量,充电时可以进行更多的数据更新,低电量时停止数据的自动更新。
  • 可以尝试JobScheduler。
  • 当系统缺少内存(而不是应用缺少内存)时,系统会调用onLowMemory()方法,所以OOM原则上无法避免。
  • 使用Account Manager来提示登录所需的信息(用户名、邮箱、密码等)。
  • 给方法一个明确的命名,要能顾名思义。
  • 启动界面是应用带给用户的第一体验。
  • 如果不需要启动界面,那不要无故添加。
  • 保持colors.xml文件短而简单,只写基本颜色就行。
  • 保持dimens.xml文件简单,之定义基本常量。
  • 当要时常修改一个字符串时,使用StringBuffer或StringBuilder(后者不保证线程安全)。
  • 为了避免内存泄露:
    1. 不要在AsyncCallBack中保留View引用。
    2. 不要让静态对象持有View引用。
    3. 最好不要在集合框架中存储View,但你也可以使用WeakHashMap。
  • FlatBuffers是一个高效的跨平台的序列化类库,建议使用。
  • Serializable实现起来很方便,但性能是真的差
时间: 2024-11-08 02:44:40

Android 开发的25个建议的相关文章

关于Android开发的几点建议

绝不要在UI线程中做数据处理的工作,这会让你的app变慢,带来极差的用户体验. 要按照google发布的Design指导意见来设计app,比如一个holo主题app会给用户带来更好的用户体验. 不要复制iOS(或wp.blackberry)的UI到Android上面来,因为对于Android来说不直观,会让你的app很难使用. 注意一些编程提示的警告.他们会帮助你提高app的性能.代码的质量以及与未来Android版本的兼容性. 不要乱用权限(permissions).决不能在用户没有同意的情况

Android开发优化建议

1.找一些与你想开发的功能类似的代码 2.调整它,尝试让它变成你想要的 3.回顾开发中遇到的问题 4.使用StackOverflow来解决遇到的问题 对每个你想实现的东西重复上述过程.采用这种方法能够激励你,因为你在保持不断迭代更新,在这个过程里面你会学到很多.当然,当你发布应用的时候你还要去做一些更深入的东西. 从一些能够正常编译的代码到成为一个应用程序,这是一个质的飞跃,比起iOS,Android则表现的更加明显.当iOS应用发布的时候,实际上只是在一种设备之间跳跃,对iOS很多机型而言都很

高效开发Android App的10个建议

假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功.这就是为什么在开发中确保最优化.运行流畅而且不会使Android系统出问题是至关重要的了.这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试.即使高效的代码也是需要时间来运行.今天这篇文章我们就讲讲怎么尽可能地缩短运行时间,以及如何开发

Android APP高效开发的十大建议

在使用Android开发APP过程中,为什么确保最优化.运行流畅且不会使Android系统出现问题至关重要呢?因为影响APP产品效率的每一个问题,如:耗电或内存占用情况等,都是关乎APP成功与否关键因素.小编为大家总结了十条高效开发AndroidAPP的建议,希望对你有所帮助. 建议一:高效地利用线程 我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响.会导致程序陷入卡顿.死掉甚至会发生系统错误.为了加快响应速度,需要把费时的操作(比如网络请求

对于大陆网络环境下android开发环境搭建的一点建议

首先,我的这篇博文不是教你如何搭建android开发环境.我相信这类的文章已经有很多了,如有需要可以百度一下.我这里将要说的对于大陆网路环境下,如果能够访问到android开发过程中需要的一些资源. 因为方法和资源都是有时效性的,所以参考本文请注意时间. [如何获取android SDK] 其实这个东西国内很多站点可以下载到,可能不是最新的罢了.所以这里谈论的是最新的android SDK的下载. 问题的根本是你不能直接访问http://developer.android.com/站点. 所以你

Android开发技术周报 Issue#25

教程 Android ocr识别文字介绍 最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目前的tesseract-ocr有了显著的改进. Java实现图像灰度化 本文主要介绍了灰度化的几种方法,以及如何使用Java实现灰度化.同时分析了网上一种常见却并不妥当的Java灰度化实现,以及证明了opencv的灰度化是使用“加权灰度化”法 自定义view

Android开发快速入门(环境配置)

Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星.HTC.中国移动.Verizon和AT&T等)的支持,因而不能不加以学习,否则你承担不起为此付出的代价. 好在Android开发入门很容易,即使没有Android手机都没关系,只需有一台可供安装Android SDK和设备模拟器的计算机即可. 本章首先介绍如何安装所有的开发工具,然后再创建一个可运行的应用——Android版“Hello, World”.如果你并非Androi

Android开发艺术探索——第二章:IPC机制(上)

Android开发艺术探索--第二章:IPC机制(上) 本章主要讲解Android的IPC机制,首先介绍Android中的多进程概念以及多进程开发模式中常见的注意事项,接着介绍Android中的序列化机制和Binder,然后详细的介绍Bundle,文件共享,AIDL,Messenger,ContentProvider和Socker等进程间通讯的方法,为了更好的使用AIDL进行进程间通讯,本章引入了Binder连接池的概念,最后,本章讲解各种进程间通信方式的优缺点和使用场景,通过本章,可以让读者对

Android开发中使用七牛云存储进行图片上传下载

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了.可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端S