您的位置:首页 > 移动开发 > Android开发

android 学习的路线

2015-06-08 14:42 344 查看
仅供自己参考之用,同时自己在进行android开发的时候要铭记住其中的几点,比如内存泄露的问题。

1.java常用设计模式

关于Java的问题:

(1)Java中常量全部大写并用下划线分割。

2.如何打包给应用市场?

3.android生命周期要弄熟。 (Log.i, overrid  eclipse使用方便)执行的顺序,onresume

4.全局变量application

5.android剪切板功能。

6.对象转换成string, 见老罗视频《剪切板传递》。

7.runtime exception可以认识几个

8.android service:http://developer.51cto.com/art/201002/183516.htm  

media player 从播放列表播放音乐,播放器有一些activities来叫用户选定歌曲并开始播放。但是,播放本身不需要activity处理,因为用户希望关闭activity后歌曲会继续播放。

因此media player 的activity 会启动一个service 。当用户离开窗体后,系统还可以保持歌曲的播放。可以与正在运行的service通信或者启动一个service 。与service通信依赖于service公开的接口。例如音乐播放,接口可能允许用户暂停、启动、停止、继续播放列表。

Android Service 没有固定的用户界面,而是默认的运行在后台,例如:播放背景音乐、从网络下载数据、计算数据并提供给activity。

   Broadcast Receiver:http://blog.csdn.net/ican87/article/details/24411495

Broadcast Receiver自身并不实现图形用户界面,但是当它收到某个通知后,Broadcast Receiver可以启动Activity作为响应,或者通过NotificationMananger提醒用户,或者启动Service等等。

比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。

9.Content Provider

 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。

10.JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。

11.退出应用程序:

1、抛异常强制退出:

该方法通过抛异常,使程序Force Close。

验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。

2、记录打开的Activity:

每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

3、发送特定广播:

在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

4、递归退出

在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

12.ListView的优化方案

1,如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中,尽可能少创建view。

2,给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果

3,如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候,再去加载接下来的20条。

13.Linear layout 的layout_weight属性要记得使用。android:layout_width="0px",配合使用。

14.tablelayout

15.Android开发中常见的内存泄漏对象没有反注册数据库cursor没有关闭Bitmap没有回收ListView item没有复用Handler在Activity中定义为非static的匿名内部类总结

16.知乎:listview的复用:   http://www.zhihu.com/question/19703384/answer/56758275

17.java synchronized

18.fragment的生命周期

19.activity生命周期里还有一个onfreeze()方法  : http://blog.csdn.net/android_tutor/article/details/4952960
20.service是在主线程里运行的!!!

21.http://blog.csdn.net/android_tutor/article/details/5740845   我们用什么在activity之间传递对象?Serializable和Parcelable。

22.在子线程中直接创建的Handler是会导致程序崩溃的。

23.java里的一种写法,也就是回调(详情见我自己写的dialog的实现方法,自定义callback,比直接强行调用舒服多了)

24.java的对象创建需要分配资源较耗费时间,加上创建的对象越多会造成越频繁的gc影响系统响应。

25.android annotaions开发框架可以适当的了解一下。butterknife还有这个也是一个框架,但是没有annotations丰富。

26.thread.currentThread().getId()
的用法,获取当前线程的id
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: