编写:徐建祥(netpirate@gmail.com)
日期:2010/10/12
网址:http://www.anymobile.org
最近几个月一直在负责某即时通讯软件的智能手机平台开发工作(已经有手机厂商和运营商的定制版,近日将发布公版),参考了iphone的设计风格,以及QQ for Android的功能设计,代码完全自主开发,主要涉及以下方面:
--调研方案
() --> <<XX for Android porting 移植文档>>
--需求
() --> <<XX for Android UI Spec 产品设计文档>>
--设计
() --> <<XX for Android design 设计文档>>
--开发
()AndroidManifest设置:debugable/launchModel/task/minSDK/...
()欢迎界面与初始化检测:手机卡/网络/SD卡(IMEI/IMSI/ACTIVE NETWORK/WIFI/SDCard)
()注册/登录界面与动画(frame animation)、数据存储(DB & Share Proferences)、网络(TCP/CP & HTTP)
()主界面与TAB设计(TabHost & TabWidget)
()更换皮肤等主题(Theme)
()呼叫小窗口(Custom Dialog)
()工具条(Menu layout & onClick)
()两级聊天室列表(GroupList & ChildView)
()电话簿(Contact v1.0 & Contact v2.0)
()资料设置(Radio & EditView & CheckBox)
()消息表情(GridView & SpanningString)
()软件运转到后台,在状态栏显示软件图标(Statusbar)
()软件更新--HTTP检测接口;XML数据格式解析;多线程下载;软件覆盖安装(XML Parser & MultiThread)
()手机号码绑定与短信监控器(SMS Observer)
()捕获按键:HOME/BACK/SEARCH,on ACTIVITY & DIALOG,后退键可以通过onKeyDown捕获;搜索键可以通过onDispathEvent获悉,其会dismiss对话框
()相机的本地预览竖屏窗口,默认只支持横屏预览(Camera Preview)
()聊天与消息机制(listener/Callback/Intent/Handler Message/Thread Message)
()JNI & AIDL
()自定义组件(Activity/Button/Dialog/ListView/In-Out)
()OpenGL & 3D
()
--测试 --> <<XX for Android v0.X.X 测试报告>>
()Eclipse Debug(USB / Serial port)
()模拟发送短信和电话呼入(ddms / command)
()抓日志与截屏(adb & ddms & logcat)
()
--发布 --> <<XX for Android Deploy 部署文档>>
()MD5等编码
()软件源代码混淆
()ANT脚本
()
XX for Android Design 设计文档
[ Android平台XX视频聊天/XX for Android]
日期: 2010.07.20.
编写: 徐建祥
网址:http://www.anymobile.org
修改记录:
2010-07-20 徐建祥
2010-08-06 徐建祥
目 录
1. 项目概述
1.1. 功能介绍
1.2. 开发环境
1.3. 运行环境
1.4. 名词解释
2. 系统架构
3. 模块设计
3.1. Android消息通讯
3.1.1. Intent意图
3.1.2. Broadcast Receiver广播接受者
3.1.3. Thread Message线程消息
3.1.4. callback机制
3.1.5. Observer观察者模式
3.1.6. Listener监听器
3.2. AV引擎库
3.3. 协议库
4. 体系结构
5. 流程设计
5.1. 注册
5.2. 登录
5.3. 注销
5.4. 点对点聊天
5.4.1. 发送文字聊天数据
5.4.2. 接受文字聊天数据
5.4.3. 发送音视频聊天数据
5.4.4. 接受音视频多媒体数据
5.4.5. 主动关闭聊天
5.4.6. 对方关闭聊天
5.5. 短信邀请视频聊天
5.6. 聊天室聊天
5.7. 聊天室转点对点聊天
5.7.1. 主动邀请聊友聊天
5.7.2. 接受聊友聊天邀请
5.8. WAP用户以及TCP代理服务器
6. 接口设计
6.1. JNI
6.2. PTS
6.3. AV Engine
7. 数据存储
7.1. Shared Preferences
7.2. SQLite Database
8. 移植相关
8.1. io输入输出相关
8.2. os操作系统相关
8.3. timer定时器
8.4. socket网络
8.5. log日志
参考文档
1. 项目概述
1.1.功能介绍
XX视频聊天手机,在2.5G网络上实现手机视频互动,让广大手机用户享受到3G功能。实现全球互通,无需漫游费,使得通讯费用大为降低;此外,也支持手机对PC的双向视频聊天,从而使人们可以随时、随地“见面”,让世界变的更小。
XX for Android是视频聊天软件XX的Android版本,实现了手机用户与艾米聊友或通讯录好友点对点视频、语音、文字聊天,另外用户可以使用视频、语音、文字聊天室功能。
1.2.开发环境
Windows XP + Cygwin / Ubuntu 10.3
JAVA:
IDE: JDK 1.5 + Eclipse3.5 + ADT0.9.6 + CDT 1.0.0
SDK: Android SDK
NDK: Android-NDK-r3
C/C++:
C库: BSD C库精简版 bionic
1.3.运行环境
Android平台1.5及以上固件版本
1.4.名词解释
【Android】OHA组织开发的,包括操作系统、中间件和核心应用的移动设备软件集合。
2.系统架构
主要包括4个模块层次:UI交互层;JNI接口层;核心应用层,以及系统适配层。
(图略)
UI交互层:
主要实现了人机交互界面,以及一些框架类等,通过不同的场景完成产品功能,每个场景可以包含多个界面,每个场景可以处理特定的通知消息。
JNI接口层:
衔接Java与C/C++代码层,是UI交互层与PTS协议模块和AV引擎交互的枢纽,提供自上而下的正向调用,以及自下而上的callback调用机制。
系统适配层:
提供系统平台相关的wrapper实现,如io、os、timer、socket等。
核心应用层:
移植的核心库,包括协议库和AV引擎库。
分享到:
相关推荐
"软件开发过程和软件开发生命周期" ...软件开发过程和软件开发生命周期是软件开发的两个重要概念,软件开发过程模型是软件开发的结构框架,为软件项目的管理提供里程碑和进度表,并为软件开发提供原则和方法。
### UML软件开发过程和支持环境研究 #### 一、引言 随着电子计算机技术和现代通讯技术的迅猛发展,全球市场正经历着前所未有的变化。在这样的背景下,软件工程领域也经历了快速的发展,尤其是在过去的三年里取得的...
在软件开发领域,一个完整的项目实践过程包含了多个关键阶段,这些阶段构成了软件开发的生命周期。以下是对这个"项目实践培训 详细介绍软件开发全过程"的详细解读: 1. 需求分析:这是软件开发的第一步,也是最重要...
"软件开发人成长经历(转载)"这个主题,旨在分享一位软件开发者从初学者到专业人士的蜕变过程,帮助那些渴望在这一行业中提升自己的人们找到方向。通过阅读《程序员感语.pdf》这样的资料,我们可以学习到许多关键的...
在这个生命周期中,软件开发团队需要经历多个阶段,包括需求分析、设计、实现、测试、部署和维护等。了解软件开发生存周期对软件开发团队的成功至关重要。 软件开发生存周期模型 软件开发生存周期模型是指软件从...
在软件工程领域,软件开发的过程经历了漫长而富有成效的发展历程,从早期的简单步骤到现代的复杂模型,每个阶段都反映了技术进步和理论深化。这篇论文将深入探讨这些过程及其演变,以帮助我们理解软件开发的现状和...
原则,是在编程技巧、编程语言、设计模式、工具之下的最底层的东西,它是人们在几十年的软件开发过程中不断经历、提炼出来的重要经验,体系了软件设计、开发过程中的设计哲学。 随着技术和时代的发展,这些原则可能...
### 软件开发过程中的项目管理 #### 一、项目管理概述 ##### 1.1 什么是项目? - **定义**:项目是指为创造一个唯一的产品或提供一个唯一的服务而进行的一次性努力。 - **特点**: - 明确的目标 - 相关的活动 ...
软件过程模型是描述软件开发过程的不同方式,例如传统的瀑布模型、增量模型、螺旋模型以及敏捷模型等。瀑布模型是最基础的过程模型,按照需求分析、设计、编码、测试和维护的顺序依次进行,每个阶段完成后才能进入下...
在软件开发过程中,软件过程管理是一项至关重要的任务,它涵盖了项目的整个生命周期,包括需求分析、设计、编码、测试以及维护等各个阶段。本课件主要聚焦于如何有效地进行软件过程管理,特别是对软件缺陷的跟踪管理...
完整的软件开发流程图, 考虑到各个方面,全面、详细。
【软件过程管理】是软件开发中的关键环节,它涵盖了团队管理、项目规划、客户需求分析、开发流程选择等多个方面。在软件工程中,过程管理分为软件工程过程论和软件工程方法论。 1. 软件工程过程论: - 软件工程...
《软件开发及管理讲稿》是一份深入探讨软件工程实践与管理的重要资料,它结合了作者丰富的职业经历,为读者提供了宝贵的实战经验。这份讲稿不仅涵盖了软件开发的基础理论,更强调了在实际工作中如何有效地进行项目...
软件过程是研究软件开发的方法论,规范软件开发的活动集合和活动顺序。 软件过程的定义与内涵: 软件过程是软件工程活动的集合,包括基本过程类、支持过程类和组织过程类。基本过程类包括获取过程、供应过程、开发...
在软件开发过程中,经常会遇到各种挑战,如成本超支、进度延误、不符合用户需求、质量问题以及低维护性等,这些问题被称为“软件危机”。 软件危机的产生有多方面的原因,包括对软件开发前期的调研和分析不足、缺乏...
* 软件开发模型和软件测试生命周期 * 软件测试的工作流程和测试模型 * 单元测试、集成测试、确认测试、系统测试和验收测试 * 软件测试阶段小结和软件测试分类 七、软件测试文档 * 软件需求、测试需求和需求评审 * ...
这一模型以线性方式进行软件开发,依次经历需求分析、设计、编码、测试和维护等阶段。每个阶段完成后,才能进入下一个阶段。 **适用条件** - 用户需求明确且稳定,不易发生变化。 - 开发团队对业务领域较为熟悉。 -...
计算机应用与软件开发专业是当代计算机应用的主流,软件开发人员需要掌握正确的开发手段和了解软件开发的主要过程。以下是计算机应用与软件开发专业的求职信知识点: 一、计算机应用与软件开发专业概述 * 计算机...