概述
做了几个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上手动修改
找到存储位置: datadatayour package dirshared_prefsyour xml files 按照上面的pull/push the file
o
SQLite(sqlite3)
默认存储位置:datadatayour package dirdatabasesyour 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
最后
以上就是忧郁白猫为你收集整理的Android app项目开发步骤总结的全部内容,希望文章能够帮你解决Android app项目开发步骤总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复