【 认真工作,享受生活 】

笑中千关过,愁内百事哀,争胜是祸,繁华似梦,平淡是福。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Android app项目和开发总结(初稿)

Posted on 2011-01-21 16:29  qiqi  阅读(490)  评论(0编辑  收藏  举报

关键字: android app, android develop, android summary

     从2010.04启动该项目到现在完成主要功能模块,分享一下开发历程和注意事项。 
     开发环境: ubuntu7.10 + eclipse 3.5 + sdk
     下面是开发总结: 

  1. 基于源码级的SDK以及SDK升级注意事项
    • 熟悉其如何做资源国际化
    • 熟悉其如何支持不同屏幕大小,不同density介质
    • 熟悉其主要的API以及支持的最低版本和不被再支持的API
    • 了解其分层架构
    • 升级SDK
      • 确保该平台支持相关的cglib版本(否则要升级ubuntu)
      • 简单容行的方式是remove ~/.android下的相关东西,remove先前的相关版本,再升级
      • 部分Resources(如strings中有%s的)可能需要修改才能适应新的版本
      • 新的sdk里可能不包括老的如2.01版本
  2. Emulator & Mobile
    • 用adb shell 操作emulator
    • push / pull file in emulator
    • 用 real mobile连接usb来直接测试(mobile 必须设置为develop/debug mode)
    • emulator更能用于性能测试,功能测试。而mobile更适合触摸操作测试和一些View的真实展现测试
    • 屏幕大小适应测试(枚举大,中,小),屏幕方向(枚举横,竖屏)
    • 内存适应只能在mobile上做测试
  3. 系统配置项
    • SharedPreferences存储位置及如何在emulator上手动修改
    • SQLite(sqlite3)
    • Other File I/O
      • assert下文件读取
      • 文件权限以及读写
    • 解读AndroidManifest.xml
      • application/process标识
      • 最开始启动的activity
      • activity栈的形式(指定taskAffinity&launchMode="singleTask"),而且转向一个新的activity是用intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)的形式
      • 需要的权限部分
      • 支持的最低版本
  4. 基于View,Context,Manager的开发
    • 系统View & Layout(Layout也是View)
    • 自定义View & Layout
    • Application,Activity,Service,View,Intent
      • Application,Activity,Service与Context的关系
      • View与Context的关系
      • 用Application来做Activity,Service,View间的全局变量(这比自己用Singleton实现好)
      • 用工厂模式使用Intent
    • WindowManager 、PackageManager 等的使用
  5. 网络IO
    • java.net
    • android.net
    • org.apache.http
  6. 绘图部分
    • 在View上绘图
      • 只在原来View上加边框等
      • 自定义View
    • 在Bitmap上绘图
  7. 动画
    • 帧动画
      • 控制侦速率在25FPS以让其更流畅
    •  渐变动画
      • 平移
      • 缩放
      • 旋转
      • 透明
  8. ANR
    • 构建消息以及消息循环处理Handler
    • 使用AsyncTask
  9. Exception & UncaughtException
    • 使用UncaughtExceptionHandler
  10. 引入第三方jar以及与其他app共享数据
    • 通过add user library方式添加第三方jar
    • Content Provider的使用 
  11. 性能优化/调优 
    • 基于View的优化
    • 代码级的规范
    • Method级的调优
    • GC分析
      • 使用Allocation Tracker