Android_app项目开发步骤总结

做了几个android企业应用项目后,总结了项目的基本开发步骤。希望可以交流。

一 应用规划:

※确定功能。

※必须的界面及界面跳转的流程。

※须要的数据及数据的来源及格式。

※是否须要服务端支持。

※是否须要本地数据库支持。

※是否须要特殊权限。

※是否须要后台服务。

二 架构设计:

※分层。

※网络连接。

※数据处理-xml、domain。

※封装Activity。

三 界面设计:

※主界面确定。

※模块界面、列表、查看、编辑界面。

※菜单、button、对话框、提示信息。

※界面整体颜色。

四 数据操作和存储:

※数据来源。

※数据类型。

※存储方式。

五 业务实现:

※client业务解析。

六 页面跳转:

※每一个页面间的跳转。

※菜单、button、事件等。

keyword: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

源文档下载

时间: 2024-10-29 10:45:50

Android_app项目开发步骤总结的相关文章

java中的命名规范,项目开发步骤

1. 项目名:没有要求,别中文 2. 包:公司域名倒写:com.igeek 3. 持久层:dao,persist,mepper 4. 实体类:entity,model,bean,javabean,pojo 5. 业务逻辑:service 6. 控制器:controller,servlet,action,web 7. 过滤器:filter 8. 异常:exception 9. 监听器:listener 10. 注释: 类和方法上使用文档注释:/**   */ 方法里使用/*   */  或者  /

EJB3.0高速入门项目开发步骤

EJB3.0开发步骤 1.   开发环境 IDE开发工具:Eclipse Java EE IDE for Web Developers EJB容器:jboss-4.2.3.GA 后台数据库:MysQL5.1 2.   开发步骤 2.1   在Eclipse中配置jboss-4.2.3.GA 1.  点击小三角,选中New server 2.  选中JBOSS AS4.2 3.  点击ADD.进行JBOSS配置 4.  在Home Directory中.点击Browser选择JBOSS4.2的安装

007.MVC项目开发步骤

项目出发点(需求) 注册 一.需求分析 用户 二.设计 三.实现(编码阶段): DBMy 1.实现数据库: Users 创建数据库,创建表,根据需要放入必要的初始测试数据 2.代码实现 步骤a.新建项目 ASP.NET MVC空模版 步骤b.写配置文件,设置连接串 步骤c.完成注册功能和加法的步骤类似,使用加法2的步骤 c.1> 创建模型Users,编译 [实体类 和数据库中表基本对应] c.2> 创建控制器Users [控制器-名词] 创建方法(注册)方法名Register [本功能是否是:

项目开发步骤

1.需求分析 2.设计   (最重要的步骤) 3.编写 4.测试 5.使用 6.维护 -------------------------------------------------更新与2015/12/06--------------------------------------------------------------------------------

基本项目开发流程

项目开发步骤 背景 系统分析 需求分析 功能分析 系统设计 1. 绘制用例图设计功能 2.绘制系统流程图 系统演示 开发工具和开发的技术选择 规定文件夹组织结构和编码规范 数据库分析与设计 1.数据库分析 2.概念设计 er图 代码中的公共类的设计 开始编码 测试 测试编写好的系统.交给用户使用,用户使用后一个一个的确认每个功能.软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试:按照测试范围,可以分为模块测试和整体联调:按照测试条件,可以分为正常操作情况测试和异常情况测试:按照测试的

eclipse中SSH框架搭建和项目开发基本步骤

1.下载SSH框架代码和eclipse插件,地址:http://yunpan.cn/QTCrdHF4xkEVp (提取码:0e8d) 注意,一定要分清楚,SSH框架是要导入到自己的工程项目中的包,这些包是要在项目中调用的预先开发好的java文件:而eclipse插件是在eclipse环境下开发SSH相关项目是方便用户建立项目管理项目的工具,跟项目本身的文件和功能无关.一定要分清楚这两个概念. 2,下载完成之后,解压,会发现有5个文件夹,第一步要用到的是spring plugins for ecl

总结android项目的基本开发步骤(转帖)

总结android项目的基本开发步骤(转帖) 做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流.一 应用规划:    ※确定功能.    ※必须的界面及界面跳转的流程.    ※需要的数据及数据的来源及格式.    ※是否需要服务端支持.    ※是否需要本地数据库支持.    ※是否需要特殊权限.    ※是否需要后台服务.二 架构设计:    ※分层.    ※网络连接.    ※数据处理-xml.domain.    ※封装Activity.三 界面设计:   

Struts2入门项目开发小步骤

Step1: Struts2的获取和添加到项目中: 在官方网站:http://struts.apache.org 获取Struts的其中一个版本. 在开发项目之前,需要添加struts2的类库支持,也就是将下载解压后的struts的lib目录下的jar包添加到项目的claspath下.通常情况下,这些jar包文件不用全部添加,根据项目实际的开发需要进行添加即可.一般项目开发首先要添加的核心jar包(版本号可以不一样)有: commons-fileupload-1.3.2.jar.commons-

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 步骤一:File  ->  New  -> Project   ->  Maven Project 步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下. 步骤三: 步骤四: