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
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
相关文章推荐
- android中task概念和与back stack的联系
- Android控制键盘显示隐藏
- Anroid简历附件
- Android中Fragment的分屏显示处理横竖屏显示
- android uri to file
- Android应用层View绘制流程与源码分析
- Android 5.0 如何正确启用isLoggable(一)__使用详解
- Android之ContextMenu的使用方法以及与OptionMenu的区别(转)
- Android 快速开发系列 打造万能的ListView GridView 适配器
- 开发中遇到的一些版本兼容问题-setBackground
- 通过点击网页中支付功能开启本地android应用
- 解决javah生成.h头文件找不到找不到android.support.v7.app.AppCompatActivity的问题
- Android中自定义权限permission
- Android如何防止apk程序被反编译
- Activity之间利用Bundle传递数据的大小
- Android APK反编译就这么简单 详解(附图)
- Android Init Language
- Android 装置CTS与GMS认证差异
- Android的init过程(二):初始化语言(init.rc)解析
- [Android Studio 权威教程]最实用的快捷键