达内首页 > IT技术学院 > Android学院 > Android开发学习小TIPS
Android开发学习小TIPS
作者:广州达内科技 更新时间:2014-04-21 11:44 来源:Android开发培训

  Android开发学习是一个漫长而复杂的过程,在学习过程中能够掌握到重点能够更快的上手Android学习。小编总结了Android开发学习中的八点重点,希望能够对大家的Android学习有所帮助。

  1、静态变量不要直接或者间接引用Activity、Service等。这会使用Activity以及它所引用的所有对象无法释放,然后,用户操作时间一长,内存就会狂升。

  2、模块间有消息需要传递时,使用LocalBroadcastManager替代Listener进行模块解耦。除了解耦,这样发送消息和执行消息差一个线程循环,可以减小方法的调用链,我这就碰到一次方法调用链太长导致StackOverflow的问题。

  3、Handler机制有一个特点是不会随着Activity、Service的生命周期结束而结束。也就是说,如果你Post了一个Delay的 Runnable,然后在Runnable执行之前退出了Activity,Runnable到时间之后还是要执行的。如果Runnable里面包含更新 View的操作,程序崩溃了。

  4、SharedPreferences.Editor.commit这个方法是同步的,一直到把数据同步到Flash上面之后才会返回,由IO操作的不可控,尽量使用apply方法代替。apply只在API Level>=9才会支持,需要做兼容。

  5、不少人在子线程中更新View时喜欢使用Context.runOnUiThread,这个方法有个缺点,就是一但Context生命周期结束,比如Activity已经销毁时,一调用就会崩溃。

  6、Application的生命周期就是进程的生命周期。只有进程被干掉时,Application才会销毁。哪怕是没有Activity、 Service在运行,Application也会存在。所以,为了减少内存压力,尽量不要在Application里面引用大对象、Context等。

  7、PackageManager.getInstalledPackages这个方法经常使用,你可能不知道,当获取的结果数量比较多的时候,在某些机型上面调用它花费的时间可能秒级的,所以尽量在子线程中使用。另外,如果结果太多,超过系统设置的Binder数据最大传输量的上限,则会发生TransactionException,如果你使用这个方法获取机器上的己安装应用列表,最好做一下预防。

  8、如果使用Context.startActivity启动外部应用,最好做一下异常预防,因为寻找不到对应的应用时,会抛出异常。如果你要打开的是应用内的Activity,不防使用显式Intent,这样能提高系统搜索目标Activity的效率。


上一篇:android raw文件夹导入数据库
下一篇:Android 的一些实用的函数

相关资讯

  • [2014-05-22 14:36:34] 【技术分享】Android如何创建新项目及开发
  • [2014-05-09 15:57:48] Android 的一些实用的函数
  • [2014-04-21 11:44:42] Android开发学习小TIPS
  • [2014-04-18 11:26:21] android raw文件夹导入数据库
  • [2014-04-16 11:45:38] Android开发中java命名规则包的命名
  • [2014-04-10 11:51:29] 关于Android 中Service生命周期的介绍
  • 【2013-2月28日】
    Java 软件工程师就业班
    >>热招中!


    【2013-2月28日】
    3G-Android 工程师就业班
    >>热招中!


    【2013-2月28日】
    3G-Android 工程师周末班
    >>热招中!

    【2013-2月28日】
    软件测试 工程师就业班
    >>热招中!