软件开发|极客营|UI前端
刚学会安卓开发者,应该注意哪些事项?
作为一个有三、四年Android应用开发经验的码农,自然会遇到很多坑,下面是我能够想起的一些坑(实践证明不记笔记可不是个好习惯),后面有想到其它坑会陆续补上。
-
有些时候不能使用Application的Context,不然会报错(比如启动Activity,显示Dialog等):
-
同一个应用的JNI代码,不要轻易换NDK编译的版本,否则会有很多问题(主要是一些方法实现不一样,并且高版本对代码的检测更严格),比如r8没有问题,但到r9就有问题了,这是个大坑;
-
Android的JNI代码中,有返回类型的函数没有返回值编译的时候也不会报错;
-
当前Activity的onPause方法执行结束后才会执行下一个Activity的onCreate方法,所以在onPause方法中不适合做耗时较长的工作,这会影响到页面之间的跳转效率;
-
谨慎使用Android的透明主题,透明主题会导致很多问题,比如:如果新的Activity采用了透明主题,那么当前Activity的onStop方法不会被调用;在设置为透明主题的Activity界面按Home键时,可能会导致刷屏不干净的问题;进入主题为透明主题的界面会有明显的延时感;
-
不要在非UI线程中初始化ViewStub,否则会返回null;
-
公共接口一定要考虑到代码重入的情况,能设计为单例就尽量用单例;
-
不要通过Bundle传递大块的数据,否则会报TransactionTooLargeException异常:java - Issue: Passing large data to second Activity**
-
尽量不要通过Application缓存数据,这不稳定:不要在Android的Application对象中缓存数据!**
-
尽量不要使用AnimationDrawable,它在初始化的时候就将所有图片加载到内存中,特别占内存,并且还不能释放,释放之后下次进入再次加载时会报错;
-
9图不能通过tinypng压缩,不然会有问题;
-
genymotion模拟器快是因为它是基于x86架构的,如果你的应用中用到了so,但没有x86架构的so,只能放弃使用它;Android Studio的模拟器也一样;
-
Eclipse的Android开发环境配置好后不要轻易升级ADT和build tools,不然会浪费你很多时间,还有就是一个workspace中的工程不要太多,不然每次启动都会很慢;
-
Android studio每个版本、gradle每个版本差别都比较大(我是这样认为的),对于jni代码的编译建议在Eclipse中进行,如果在Android studio中开发jni会浪费很多时间,主要是编译脚本的配置比较麻烦;
-
Eclipse中的Lint太不靠谱,特别是主工程中依赖library的时候,很多提示都是有问题的,建议使用Android Studio的工程清理工具,特别推荐。
-
AsyncTask默认自己维护一个静态的线程池,而该线程池只允许同时执行一个线程,也就是说,不管多少个AsyncTask,只要是调用execute()方法,都是共享这个默认进程池的,你的任务必须在之前的任务执行完以后,才能执行。
-
长沙极客营IT梦想学院是一个致力于高素质软件开发人才培养的计算机教育基地,首创国内《极客Android课程》、《极客IOS课程》、《极客Java课程》、《前端工程师培训》等专业教材,成为国内许多前沿IT企业的人才孵化基地,通过专业实训彻底排除学员的后顾之忧,并解决用人企业难以招聘到合格人才的困扰。
复制本页链接:https://www.88huangye.com/huangyegy/show-87969.html
其它信息推荐:| 长沙安卓培训|极客营|IT培训 | 长沙UI设计培训|长沙极客营IT梦想学院|极客营 | 长沙网页培训哪家免费好? | 长沙JAVA培训,极客营,软件开发 | 软件开发|极客营|UI前端 | 长沙IOS培训|极客营|长沙JAVA培训