建立Android源码开发环境
建立 Android 源码开发环境
Android 源码的编译
一、配置环境
1. 磁盘
需要 6G 以上剩余空间
2. Linux 系统
Ubuntu 6.06 以上版本,我用的是 buntu 8.04,具体请见下篇文档《ubuntu
系统的使用》
3. Git 工具 (Git 1.5.4 以上版本)
它是类似 CVS
的版本管理工具,如果你的代码不用从网上下载,而是从别人处复制,则无需此工具
$ sudo apt-get install git-core gnupg
4. Java 环境 (JDK 5.0 update12 以上版本)
$ sudo apt-get install sun-java6-jdk
具体安装请见上篇文档《Android 环境的搭建》
5. Python (Python 2.4 以上版本)
从 [http://www.python.org/download/ 下载 2.4
](http://www.python.org/download/下载2.4) 以上版本
$ tar xvzf python-2.4.5.tgz
$ cd python-2.4.5/
$. ...
Android程序中使用定时器Timer
Android 程序中使用定时器
Timer
#移动开发 #Android
一、重点
1. 如何使用 handler 和 message
2. 如何延时调用
使用延迟发消息的方式
也可以使用 android.util.Timer 与 handler 相结合的方式
见
[http://hi.baidu.com/iammuyue/blog/item/20ef6b10bbc92377cb80c467.html
](http://hi.baidu.com/iammuyue/blog/item/20ef6b10bbc92377cb80c467.html)
二、举例
1. 功能:实现一个应用界面,在用户长按触模屏两秒后,打出 Log 信息
2. 步骤:
建立 project
在 eclipse 中点击菜单 File->New->Project ……
选择 Android Project 按 Next
填写 project 的各项内容如下
Project name: test_xy // 目录名, 它位于你设定的 workspace 之下
Package name: com.a ...
如何新建和使用Android控件
如何新建和使用 Android 控件
#移动开发 #Android
一、重点
如何在 layout(xml)中使用自定义的控件
二、举例
1. 功能:实现一个新的浏览器控件,使点击浏览器中任何位置都能打印 Log
信息
2. 步骤:
建立 project
在 eclipse 中点击菜单 File->New->Project ……
选择 Android Project 按 Next
填写 project 的各项内容如下
Project name: test_xy // 目录名, 它位于你设定的 workspace 之下
Package name: com.android.test // 打包名称
Activity name:.TestXy // 类名 (生成文件 TestXy.java)
Application name: test_xy // 可执行程序名
然后点 Finish 按钮
继承一个已有控件,加入新的属性和方法
eclipse 左侧:test_xy->src->com.android.test 点右键
New->class
建立新控 ...
android源码中常用于参考的代码
android
源码中常用于参考的代码
#移动开发 #Android
在应用开发时,常遇到有些功能不知是否能实现,不知如何实现的问题,在网上资料又不多的情况下,可以用参考已有源码的方式来解决这些问题,经常参考的目录如下
1、系统控件的实现:了解有什么控件,控件的功能,功能如何实现
frameworks/base/core/java/android/*
2、应用程序的实现:Android
系统中所有的应用程序都在这里实现,了解它们如何实现
package/apps/*
3、系统提供的例程:各种类型程序的实现范例
development/samples/*
安装和卸载Android应用程序_apk包
安装和卸载 Android 应用程序
_apk 包
一、安装
1. 安装第三方应用
** $ adb install apk ** ** 文件名 **
2. 安装系统应用
** $ adb remount **
** $ adb push apk ** ** 文件名 ** /system/app // apk 文件名形如
testme.apk
二、卸载
1. ** $ adb uninstall ** ** 包名 ** // 包名形如
com.android.testme
2. Home- > 设置 -> 应用程序 -> 管理应用程序 ->
选择某应用程序 -> 卸载
三、相关文件
1. /system/app/apk 文件
系统应用
2. /data/app/ 包名.apk
第三方应用
3. /data/data/ 包名
此位置用于存储用户数据
4. /data/dalvik-cache/ 组合名.dex
dex 文件是 Android 虚拟机 Dalvik 支持的字节码文件格式
5. /data/data/com.android.launcher/da ...
Android基本组件及其交互
Android 基本组件及其交互
#移动开发 #Android
一、Android 的基本组件
1. Activity
应用程序中每个屏幕显示都通过继承和扩展基类 Activity
在一个应用程序中每个 Activity 都是独立的
2. Service
Service 是没有可见的用户界面,但可以长时间在后台运行
3. Broadcast
用户接受广播通知的组件,广播是一种同时通知多个对象的事件通知机制
应用程序注册不同的 Broadcast Receiver,从而接收不同广播通知
不实现图形界面
4. Content Provider
应用程序彼此间需要共享资源,数据通讯时,采用 content provider 机制
它能将应用程序特写的数据提供给另一个应用程序使用
二、组件间的通讯
1. ContentProvider 用于提供,ContentResolver 用于调用
2. Intent
用于在不同组件间传递消息:Activity, Service, Broadcast
Intent
一般带有一个组件对另一组件的请求的动作名称,请求动作及相关数据
Activity 相互调用 ...
Android系统文件结构
Android 系统文件结构
#移动开发 #Android
一、镜像文件 image
1. 如何得到镜像文件
编译 android 源码之后,在 out/target/product/generic 产生
ramdisk.img、system.img、userdata.img
SDK 的 platforms/android-*/images
ramdisk.img、system.img、userdata.img
2. 各镜像文件的含义
system.img 是由 system
目录打包压缩得到的,以只读方式挂载。
userdata.img 是由 data
目录打包压缩得到的,以读写方式挂载,用于存放用户数据,用户安装的软件包在被装在这里。
ramdisk.img 是模拟器的文件系统,把 ramdisk.img
解压出来可知道,ramdisk.img
里的文件和根文件夹的文件基本一样。
3. 镜像文件的挂载顺序
模拟器装载 ramdisk.img 并解压到内存,接着分别把 system.img 和
userdata.img 挂载到 ramdisk
下的 system 和 data ...
Android常用工具
Android 常用工具
#移动开发 #Android
一、Log
1. logcat 不同级别的打印信息,级别如下
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent
2. 如何在 log 里打行号和时间
getFileName ()
getClassName ()
getMethodName ()
getLineNumber ()
二、Adb
1. 把程序装手机里:一般程序装 apk 即可
手机打开,边上 usb 线,直接连上电脑
系统 ubuntu 8.04
sdk 包 android-sdk-linux_x86-1.5_r3/tools/adb shell
变 root 权限 (因为连接真机,若边模拟器就无所谓哪个用户了)
使用命令 adb devices 看设备是否连上了
如果同时启了模拟器和连接了手机,adb 会让你选择与谁连接
注意:如果你有多个 SDK,千万要使用匹配的 adb
命令,最好用绝对路径,否则很容易得到提示说找不设备,如果说找不到
adb
,请尝试以下方法
** $ killall adb * ...
Android模拟器调试与真机调试
Android 模拟器调试与真机调试
#移动开发 #Android
一、模拟器调试与真机调试
1. 模拟器调试
运行源码或 SDK 中的 emulator,加参数
2. 真机调试
用 usb 线连接 G1 硬件和 PC
若是 windows 系统,则安装驱动
用源码或 SDK 中的 adb 命令看硬件是否连接成功
** $ adb devices ** 正常调试
注意:
在 Linux 连接真机时需使用 root 权限
如果之前连接过模拟器,最好连接前先杀掉 adb 后台进程
** $ killall adb **
3. Eclipse 中调试
若连接真机,未打开模拟器时,直接连接真机调试
若未连接真机,已打开模拟器时,在当前模拟器中调试
若未连接真机,也未打开模拟器时,打开模拟器调试
若只开多个真机或多个模拟器时,同时有多个可连接的设备,弹出列表供用户选择
4. 命令行中使用 adb 工具调试
连接多个设备时,需要用命令行参数指示设备名或设备类型
** $ adb–s ** ** 设备名 ** ** shell ** 设备名由 adb devices 列出
** $ adb– ...
Android界面开发
Android 界面开发
#移动开发 #Android
一、界面元素
1. 窗口:Activity
应用程序中每个屏幕显示都通过继承和扩展基类 Activity 实现
分类:基本 Activity,带内容的 Activity(如 ListActivity)
2. 对话框:Dialog
一种显示于 Activity 之上的界面元素,由 Activity
管理,用于显示一些临时信息和功能,它比 Activity 开销小
常用对话框: AlertDialog:信息对话框
DatePickerDialog,TimePickerDialog:时间日期选择对话框
ProgressDialog:进度对话框
还可以设置对话框内容为我们自定义的 View
相关函数: onCreateDialog():创建对话框的实现
showDialog():需要显示的时候调用
onPrepareDialog():更改已有对话框时调用
3. 菜单:Menu
一种显示于 Activity 之上的界面元素,由 Activity
管理,用于提供用户一些额外的选项和设置
常用菜单: Options Menu:按 Menu ...