请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Android Studio 中文社区论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: Android Sdk Gradle
查看: 183|回复: 0

[不区分系统] Android开发中这些坑等着你来跳

[复制链接]

6

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2016-6-22 17:34:27 | 显示全部楼层 |阅读模式
        作为一个Android应用开发的工作人员来说,遇到坑是很正常的事情,那么,在Android 开发中,有哪些坑是需要注意的?下面,深圳安卓培训(sz.android.tedu.cn)专家就与大家分享下,希望以后你不要在去跳这些坑了。

           
  •                                         在Android library中不能使用switch-case语句                

           
  •                                         不能在Activity没有完全显示时显示PopupWindow和Dialog                

           
  •                                         在多进程之间不要用SharedPreferences共享数据,虽然可以(MODE_MULTI_PROCESS),但极不稳定                

           
  •                                         有些时候不能使用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异常                
                   
                                           

           
  •                                         尽量不要通过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()方法,都是共享这个默认进程池的,你的任务必须在之前的任务执行完以后,才能执行。                

        在你成为成功Android app开发者的艰辛旅程中,你还有其他的项目管理技巧吗?欢迎和我们大家一起分享。

希望以上内容对你有所帮助!深圳达内安卓培训有 着国内首家完整的移动安卓课程体系,高度专注安卓前沿技术。深圳安卓培训项目全部来自于真实的企业项目,单独项目代码量超过 6万行。深圳安卓培训机构为了让学员尽快的进入到企业开发的项目中,深圳达内安卓培训使用自主开发的产品和为客户定制的企业产品为案例,大批深圳安卓培训 开发学员都从中收益。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

AndroidStudio中文社区 ( 京ICP备06021553号 )  

资源: 安卓 | Android | 社区 | 问答 | 培训 | 人才 | 招聘 | YotaPhone | VisualStudio

© 2013-2014 Android Studio

快速回复 返回顶部 返回列表