Andriod和PHP开发最佳实践
1.准备篇
1.2 为何选择Android和PHP
- LAMP,Nginx + PHP fastCGI
1.3
- Android docs/reference/packages.html
- PHP 文档 http://www.php.net/manual/
- 官方拓展库 http://pecl.php.net/packages.php
2.1 Android背景知识
- 基于linux平台
2.2 Android系统框架

- Applications
- Application Framework
- Libraries
- Android Runtime


Android Runtime
- Android基本符合linux内核标准
- 文件系统:YAFFS2
- IPC Binder通过Service Manager管理系统中的服务,各进程通过访问Binder访问同一块共享内存,以达到数据共享的目的.
- LMK(Low Memory Killer)关闭最低重要级别的进程,Ashmem(Anonymouse Shared Memory)
- 没有休眠待机功能,可以通过RPC调用,电池状态改变和电源设置判断调整电源管理策略.
2.3 Android应用框架
- 要点
- Activity
- Intent
- View
- Task
- Activity

- Activity:界面控制器,类似于网页
- Android系统内部有专门的Activity堆栈空间,用于存储多个Activity的运行状态
- 系统保证某一时刻只有最顶端的Activity处于前端活动foreground状态
- 启动并进入活动状态OnCreate->onStart->onResume
- 退居后台onPause->onStop
- 重新回到活动状态onRestart->onStart->onResume
- 销毁onPause->onStop->onDestroy
- 所有Activity必须在项目基础配置文件AndroidManifest.xml中声明,否则可能抛出ActivityNotFoundException异常
- 消息Intent
- 一个对象,包含构成消息的内容和属性
- ComponentName,用于指定目标组件,可以送过setComponent,setClass,setClassName设置
- Action,定义了各种动作常量(字符串常量)setAction方法
- ACTION_MAIN表示应用入口初始化动作
- ACTION_EDIT 常见的编辑动作
- ACTION_CALL 初始化电话模块动作
- Data,setData,SetType
- 不同动作对应不同数据类型
- 数据类型可以从URI格式中获取
- Category,addCategory
- 不同动作由不同类别的Activity组件处理,一个Intent对象可以包含多种类型属性
- Extras
- 自定义额外附加信息,以键值对方式存储,
- get/putExtra
- Flags
- 用于指示Android系统如何启动Activity以及启动之后如何处理
- 使用方式
- 显式消息 Explicit Intent
- 隐式消息 Implicit Intent