您的位置:首页 > 移动开发

Android app项目开发步骤总结

2015-06-15 20:23 567 查看
做了几个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-devel
opmenttestinginstallations-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的开发

系统View & Layout(Layout也是View)

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

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

设计常用的style/theme用到的

Drawable: http://idunnolol.com/android/drawables.html



常用的图片操作

 指定颜色的渲染(setColorFilter)



剪裁

自定义View & Layout



Java代码



public class TouchListView extends ListView {

public TouchListView(Context context, AttributeSet attrs, int defStyle) {



} }



Java代码

public class Toolbar extends LinearLayout {

public Toolbar(final Context context) {

super(context);

}





public Toolbar(final Context con, AttributeSet attrs) {

}



}



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 canva

s) {}





自定义View



Java代码

1. @Override

2. protected void onDraw(Canvas canvas) {



o

在Bitmap上绘图



Java代码

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: