Android_app项目开发步骤总结

 

做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流。 
一 应用规划: 
    ※确定功能。 
    ※必须的界面及界面跳转的流程。 
    ※需要的数据及数据的来源及格式。 
    ※是否需要服务端支持。 
    ※是否需要本地数据库支持。 
    ※是否需要特殊权限。 
    ※是否需要后台服务。 
二 架构设计: 
    ※分层。 
    ※网络连接。 
    ※数据处理-xml、domain。 
    ※封装Activity。 
三 界面设计: 
    ※主界面确定。 
    ※模块界面、列表、查看、编辑界面。 
    ※菜单、按钮、对话框、提示信息。 
    ※界面总体颜色。 
四 数据操作和存储: 
    ※数据来源。 
    ※数据类型。 
    ※存储方式。 
五 业务实现: 
    ※客户端业务解析。 
六 页面跳转: 
    ※每个页面间的跳转。 
    ※菜单、按钮、事件等。 

 

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

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

1.     基于源码级的SDK以及SDK升级注意事项

o    熟悉其如何做资源国际化

o    熟悉其如何支持不同屏幕大小,不同density介质

o    熟悉其主要的API以及支持的最低版本和不被再支持的API

o    了解其分层架构

o    升级SDK

§  确保该平台支持相关的cglib版本(否则要升级ubuntu)

§  简单容行的方式是remove ~/.android下的相关东西,remove先前的相关版本,再升级

§  部分Resources(如strings中有%s的)可能需要修改才能适应新的版本

§  新的sdk里可能不包括老的如2.01版本

2.     Emulator & Mobile

o    用adb shell 操作emulator

§  http://www.javaeye.com/topic/260042

o    push / pull file in emulator

§  Eclipse->window->Show View->File Explorer->pull a file from the device(or push a file onto the device)

o    用 real mobile连接usb来直接测试(mobile 必须设置为develop/debug mode)

§  http://dimitar.me/how-to-connect-your-android-phone-to-ubuntu-to-do-developmenttestinginstallations-or-tethering/

o    emulator更能用于性能测试,功能测试。而mobile更适合触摸操作测试和一些View的真实展现测试

o    屏幕大小适应测试(枚举大,中,小),屏幕方向(枚举横,竖屏),任务切换测试

o    内存适应只能在mobile上做测试

3.     系统配置项

o    SharedPreferences存储位置及如何在emulator上手动修改

§  找到存储位置: \data\data\your package dir\shared_prefs\your xml files

§  按照上面的pull/push the file

o    SQLite(sqlite3)

§  默认存储位置:\data\data\your package dir\databases\your database name

§  按照上面的用adb shell 操作emulator做部分database的设计和数据更新

§  设计版本更新和升级

o    Other File I/O

§  assert下文件读取

§  文件权限以及读写

o    解读AndroidManifest.xml

§  application/process标识

§  最开始启动的activity

§  activity栈的形式(指定taskAffinity&launchMode="singleTask"),而且转向一个新的activity是用intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)的形式

§  需要的权限部分

§  支持的最低版本

4.     基于View,Context,Manager的开发

o    系统View & Layout(Layout也是View)

§  用View本身来做其他Layout间的一个分隔

§  常用的View&Layout:ListView,ScrollView,RelativeLayout,TableLayout

§  设计常用的style/theme用到的Drawable: http://idunnolol.com/android/drawables.html

§  常用的图片操作

§  指定颜色的渲染(setColorFilter)

§  剪裁

o    自定义View & Layout

§  Java代码 

1. public class TouchListView extends ListView {  public TouchListView(Context context, AttributeSet attrs, int defStyle) {  

2. } }   

§  Java代码 

1. public class Toolbar extends LinearLayout {  

2.     public Toolbar(final Context context) {  

3.         super(context);  

4.     }  

5.       

6.     public Toolbar(final Context con, AttributeSet attrs) {  

7.   }  

8.   

9. }  

 

o    Application,Activity,Service,View,Intent

§  Application,Activity,Service与Context的关系

§  View与Context的关系

§  用Application来做Activity,Service,View间的全局变量(这比自己用Singleton实现好)

§  用工厂模式使用Intent

§  做activity跳转

§  sendBroadcast(实时数据交换可借助Thread+ BroadcastReceiver)

o    WindowManager 、PackageManager 等的使用

2.     网络IO

o    java.net

o    android.net

o    org.apache.http

§  如果没有让他在AsyncTask中操作,则他的TimeOut设置必须少于5秒(为ANR等待时间)

§  java.net.UnknownHostException

§  如果发生在emulator,可参考: http://www.javaeye.com/topic/521023

§  如果发生在mobile,则一般是DNS解析问题,要么允许用户再重试操作,要么把Host的域名改为public ip address

3.     绘图部分

o    在View上绘图

§  只在原来View上加边框等

§  Java代码 

1. @Override  

2.     protected void dispatchDraw(Canvas canvas) {}  

 

§  自定义View

§  Java代码 

1. @Override  

2.     protected void onDraw(Canvas canvas) {  

 

o    在Bitmap上绘图

§  Java代码 

1. Bitmap result = Bitmap.createBitmap(48,48, Config.ARGB_8888);    

2.          Canvas canvas =  new   Canvas(result);    

3. ...  

4. canvas.drawBitmap(result, rect, rect, paint);  

 

2.     动画

o    帧动画

§  控制侦速率在25FPS以让其更流畅

o     渐变动画

§  平移

§  缩放

§  旋转

§  透明

3.     ANR

o    构建消息以及消息循环处理Handler

o    使用AsyncTask

4.     Exception & UncaughtException

o    使用UncaughtExceptionHandler

5.     引入第三方jar以及与其他app共享数据

o    通过add user library方式添加第三方jar

o    Content Provider的使用 

6.     性能优化/调优 

o    基于View的优化http://dl.javaeye.com/topics/download/774b3e9e-1c48-33bd-bc9d-5c27da998181

o    代码级的规范

o    Method级的调优

§  Method Profiling(如果直接usb连接mobile,需要root权限作此项)

o    GC分析

§  使用Allocation Tracker

 

 

 

 
 源文档下载

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值