k哥的android开发笔记(更新至2012.05.03)

作者: k歌之王


android作为最火热的手机开发平台, k哥怎么会错过呢。 android确实带来了许多不一样的开发体验。 我会不断更新这篇笔记, 跟大家一起学习:)


1) 开始搭建环境之前, 先把\android-sdk-windows\temp目录删除。

2) 如果你使用的android 2.2, 使用adb命令行会报错, 请把platform-tools下的文件复制到了tools下面

3) 由于ANDROID模拟器基于ARM指令集架构, apk可在真机运行, 就可以跑在模拟器上。 步骤:打开模拟器>>进入android sdk tools目录 >>adb install f:\TTPOD.apk 半分钟后提示安装成功, 就可以在模拟器玩天天动听啦。

4) 关于调试程序, 如果以前用carbide做过symbian开发, 对eclipse的调试流程会比较熟悉。当然仅限于sdk. 据说ndk调试很麻烦~~

5) eclipse点击layout\mail.xml 退出。 确认环境变量JAVA_HOME路径。 升级java版本到1.6即可。 (命令行输出java -version查看当前java版本)

6) 有多个activity, 调用顺序由AndroidManifest.xml决定

7) 如果使用了findViewById来获得控件对象, 需要在布局文件里指定控件资源的ID

8) Android UI操作必须在UI线程里。 所以android最常用的更新屏幕的方法是利用Handler来实现UI线程的更新。 (和symbian类似)。 也可以使用postInvalidate方法直接在线程里更新界面。

9) android提供 VIEW, Surfaceview类作为MVC视图类的基类的开发框架。 SurfaceView相比View,刷屏效率更高,使用双缓冲来显示,SurfaceView提供给需要直接画像素而不是使用窗体部件的应用来使用的。 SurfaceView和View的明显不同在于, SurfaceView不需要通过线程来更新视图。 更新方法是先lock画布,得到画布,在画布绘制,再unlock画布。

10) android数据存储有4种方式:

- Shared Preferences: 只存储基本数据类型如boolean。 只供本程序使用。

- Files: 通过FileInputStream和FileOutputStream对文件操作。 一个程序无法读写其他程序的文件。

- Network:

- SQLite: 针对大量数据进行存储维护


11) 和symbian需要声明程序涉及的capability类似, android程序需要在AndroidManifest.xml文件给予权限。 例如程序需要访问外部网络:代码如下:

<uses-permission android:name"android.permission.INTERNET" />

12) 使用NDK, 每次build前先clean. 生成.so后把project也clean再build。 不然经常有意想不到的问题。

13) admob最新sdk只能用android 3.2 SDK. 相应的也要升级eclipse到3.6(helios),ADT也要升级。 通过manifest里设定minSdkVersion=8保证程序兼容android 2.2

14) proguard用来混淆和精简JAVA代码。 我的程序从720K精简至416K,效果明显

15) AudioTrack类: 音频播放类, 支持将pcm buffer数据交给硬件播放(也只支持PCM, amr,aac,mp3等其他格式只能自己软解)。

分static和stream两种mode。前者适用于小文件一次性交给硬件播放, 后者是一个个chunk给硬件播放(流式的).
16) 在android 2.2之后, 读写SD卡要增加权限 android.permission.WRITE_EXTERNAL_STORAGE
17) HTTP下载最好用HttpURLConnection接口(尤其在EDGE环境下), 这是GOOGLE持续在改善和优化的API,。 而HttpClient在android 2.3及以上版本则不被GOOGLE推荐使用。



你可能感兴趣的:(Android开发)