[Android] Android学习手记(一)
1。在eclipse下出现“Failed to find an AVD compatible with target 'Android
1.5'. Launch aborted.”。
手册上说需要Create an AVD(Android Virtual Device)。
AVD新建在%HOMEPATH%\.android\avd下。
2。“Hello world!”,初学的第一步总归是跳不出这个圈子的,MS很有些不顺,按手册一步步做,运行时总发现出现的是黑屏的“ANDROID_”,根本不见我的“Hello world”,折腾了一下午也没看到。到晚上才发现,原来第一次运行时需要等手机的模拟终端完全运行好后,才能看到久违的“Hello world”,中间时长得有个1、2分钟,不是程序运行得太慢,原来是我性子太急,。
3。新版本的Android sdk 1.5里新的android工具替代了之前版本中activitycreator。
4。用android create project会生成build.xml文件,Eclipse则不会。Android1.5生成的build文件比Android1.1生成的简单多了,关键使用了自定义的taskdef。
5。命令行启动方式:
6。两个命令(android.bat adb.exe):
android.bat:
adb.exe:
手册上说需要Create an AVD(Android Virtual Device)。
AVD新建在%HOMEPATH%\.android\avd下。
D:\Dev\Android\Android-1.5\tools>android create avd
--target 2 --name myavd
Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Created AVD 'myavd' based on Android 1.5
Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Created AVD 'myavd' based on Android 1.5
2。“Hello world!”,初学的第一步总归是跳不出这个圈子的,MS很有些不顺,按手册一步步做,运行时总发现出现的是黑屏的“ANDROID_”,根本不见我的“Hello world”,折腾了一下午也没看到。到晚上才发现,原来第一次运行时需要等手机的模拟终端完全运行好后,才能看到久违的“Hello world”,中间时长得有个1、2分钟,不是程序运行得太慢,原来是我性子太急,。
3。新版本的Android sdk 1.5里新的android工具替代了之前版本中activitycreator。
4。用android create project会生成build.xml文件,Eclipse则不会。Android1.5生成的build文件比Android1.1生成的简单多了,关键使用了自定义的taskdef。
5。命令行启动方式:
D:\Study\Android>emulator.exe -avd myavd
D:\Study\Android>adb install bin\android.apk
292 KB/s (9358 bytes in 0.031s)
pkg: /data/local/tmp/android.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
D:\Study\Android>adb shell
# rm /data/app/com.heyday.apk
rm /data/app/com.heyday.apk
# exit
exit
D:\Study\Android>adb install bin\android.apk
97 KB/s (9358 bytes in 0.093s)
pkg: /data/local/tmp/android.apk
Success
D:\Study\Android>adb shell
# am start -n com.heyday/com.heyday.Hello
am start -n com.heyday/com.heyday.Hello
Starting: Intent { comp={com.heyday/com.heyday.Hello} }
#
D:\Study\Android>adb install bin\android.apk
292 KB/s (9358 bytes in 0.031s)
pkg: /data/local/tmp/android.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
D:\Study\Android>adb shell
# rm /data/app/com.heyday.apk
rm /data/app/com.heyday.apk
# exit
exit
D:\Study\Android>adb install bin\android.apk
97 KB/s (9358 bytes in 0.093s)
pkg: /data/local/tmp/android.apk
Success
D:\Study\Android>adb shell
# am start -n com.heyday/com.heyday.Hello
am start -n com.heyday/com.heyday.Hello
Starting: Intent { comp={com.heyday/com.heyday.Hello} }
#
6。两个命令(android.bat adb.exe):
android.bat:
android是一个批处理脚本(win)或shell脚本(linux),它在android_home/tools目录中,其中android_home即Adnroid
sdk的根目录。用法如下:
android [global option] action [action option]
全局选项(global option):
-h --help 显示命令的帮准信息
-s --silent 以安静模式运行命令,仅会打印错误信息
-v --verbose 以详细模式运行命令,会在控制台输出错误、警告和其它一些信息
动作(action),动作由一个动词后跟一个可选的命令对象
list 列出当前的目标和虚拟设备
list avd 列出当前的虚拟设备
list target 列出当前的目标
create avd 新建一个Android虚拟设备
move avd 移动或重命名一个Android虚拟设备
update avd 更新Android虚拟设备匹配新sdk的目录
delete avd 删除Android虚拟设备
create project 新建Android项目
update project 更新Android项目 (项目中必须存在AndroidMenifest.xml文件)
list、list avd、list target动作没有选项。
create avd动作
-t --target 新avd的目标(必须)
-c -sdcard avd使用的sd card镜像文件的路径,或者新sd card的大小
-p --path 指向新建avd目录的路径
-n --name 新avd的名称(必须)
-f --force 强制新建一个avd
-s --skin avd使用的皮肤
move avd动作
-p --path 移动或重命名的avd的目录路径
-n --name 移动或重名的avd的名称(必须)
-r --rename avd的新名称
delete avd动作
-n --name 删除的avd的名称(必须)
update avd动作
-n --name 更新的avd的名称(必须)
create project动作
-k --package 包名(必须)
-n --name 项目名
-a --activity activity名(必须)
-t --target 新项目的目标(必须)
-p --path 存放新项目的目录路径(必须)
update project动作
-t --target 项目更新后的目标(必须)
-p --path 项目的路径(必须)
-n --name 项目的名称
注:
1. 在上面列出的选项中后面加了必须,说明运行此动作时,必须制定此选项
2. 目标(target)是指使用的Android sdk的版本,在Android sdk 1.5 r1中,其可选值为1、2和3。1表示使用Android sdk 1.1,2表示使用Android sdk 1.5,3在2的基础上,增加了google map api。
android [global option] action [action option]
全局选项(global option):
-h --help 显示命令的帮准信息
-s --silent 以安静模式运行命令,仅会打印错误信息
-v --verbose 以详细模式运行命令,会在控制台输出错误、警告和其它一些信息
动作(action),动作由一个动词后跟一个可选的命令对象
list 列出当前的目标和虚拟设备
list avd 列出当前的虚拟设备
list target 列出当前的目标
create avd 新建一个Android虚拟设备
move avd 移动或重命名一个Android虚拟设备
update avd 更新Android虚拟设备匹配新sdk的目录
delete avd 删除Android虚拟设备
create project 新建Android项目
update project 更新Android项目 (项目中必须存在AndroidMenifest.xml文件)
list、list avd、list target动作没有选项。
create avd动作
-t --target 新avd的目标(必须)
-c -sdcard avd使用的sd card镜像文件的路径,或者新sd card的大小
-p --path 指向新建avd目录的路径
-n --name 新avd的名称(必须)
-f --force 强制新建一个avd
-s --skin avd使用的皮肤
move avd动作
-p --path 移动或重命名的avd的目录路径
-n --name 移动或重名的avd的名称(必须)
-r --rename avd的新名称
delete avd动作
-n --name 删除的avd的名称(必须)
update avd动作
-n --name 更新的avd的名称(必须)
create project动作
-k --package 包名(必须)
-n --name 项目名
-a --activity activity名(必须)
-t --target 新项目的目标(必须)
-p --path 存放新项目的目录路径(必须)
update project动作
-t --target 项目更新后的目标(必须)
-p --path 项目的路径(必须)
-n --name 项目的名称
注:
1. 在上面列出的选项中后面加了必须,说明运行此动作时,必须制定此选项
2. 目标(target)是指使用的Android sdk的版本,在Android sdk 1.5 r1中,其可选值为1、2和3。1表示使用Android sdk 1.1,2表示使用Android sdk 1.5,3在2的基础上,增加了google map api。
adb.exe:
adb(Android Debug
Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件;
install <path> 安装应用程序到服务器
pull <remote file> <local file> 将远程文件拉出服务器
push <local file> <remote file> 将本地文件推进服务器
shell 在服务器上打开一个壳环境
forward <local port> <remote port> 从一个端口转递流量到另外一个端口(到或者从服务器上)
start-server 启动服务器
kill-server 停止服务器
ppp <tty> <params> 通过USB使用一个ppp连接
devices 列出可用的模拟器
help 列出adb的命令
version 显示adb的版本
以下为一些常用的操作:
1、安装应用到模拟器:
adb install <path_to_apk></path_to_apk>
比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:
adb shell
cd /data/app
rm app.apk
2、进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
3、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
4、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so .
5、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
6、查看bug报告:
adb bugreport
7、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
8、获取设备的ID和序列号:
adb get-product
adb get-serialno
9、访问数据库SQLite3
adb shell
sqlite3
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件;
install <path> 安装应用程序到服务器
pull <remote file> <local file> 将远程文件拉出服务器
push <local file> <remote file> 将本地文件推进服务器
shell 在服务器上打开一个壳环境
forward <local port> <remote port> 从一个端口转递流量到另外一个端口(到或者从服务器上)
start-server 启动服务器
kill-server 停止服务器
ppp <tty> <params> 通过USB使用一个ppp连接
devices 列出可用的模拟器
help 列出adb的命令
version 显示adb的版本
以下为一些常用的操作:
1、安装应用到模拟器:
adb install <path_to_apk></path_to_apk>
比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:
adb shell
cd /data/app
rm app.apk
2、进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
3、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
4、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so .
5、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
6、查看bug报告:
adb bugreport
7、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
8、获取设备的ID和序列号:
adb get-product
adb get-serialno
9、访问数据库SQLite3
adb shell
sqlite3