作者: 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等其他格式只能自己软解)。