- 浏览: 203135 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Android虚拟机Dalvik
Dalvik冲击
随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预
期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java 社区是一石激起千层浪,
这就是Android 平台的基础——Dalvik 虚拟机。
Dalvik和标准Java虚拟机(JVM)首要差别
Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费
的时间更短。
Dalvik和Java运行环境的区别
Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的
Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.
Dalvik形势
Dalvik 的诞生也导致人们开始忧虑Java 平台的第一次大规模的分道扬镳或许已经是进行时了——有人已经把
Davlik 和微软的JVM 以及Sun 对微软的诉讼联系起来,等着看Google 身上是否也会发生类似事情;另外一
些人则指出,Google 并没有宣称Dalvik 是一个Java 实现,而微软却是这样做的。Sun 也对可能带来的阵营
分裂表达了忧虑情绪,并提出和Google 合作来保证Dalvik 和JVM 之间的兼容性——Google 对此的解释是,
Dalvik 是对解决目前JavaME 平台上分裂的一次尝试,也是为了提供一个拥有较少限制许可证的平台。甚至
还有人怀疑这是否是Sun 和Google 两大阵营对Java 之未来的一次大规模较量。
Android 中各种JAVA 包的功能描述
在Android 的应用程序开发中,通常使用的是JAVA 语言,除了需要熟悉JAVA 语
言的基础知识之外,还需要了解Android 提供的扩展的JAVA 功能。
在一般的JAVA 应用中,如果需用引用基础类库,通常需要使用如下的方式:
import javax.swing.*;
以上代码表示了引用JAVA 的GUI 组件Swing,javax.swing 即JAVA 中的一个包。
android 提供一些扩展的JAVA 类库,类库分为若干个包,每个包中包含若干个类。
重要包的描述:
android.app :提供高层的程序模型、提供基本的运行环境
android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL 的工具
android.provider :提供类访问Android 的内容提供者
android.telephony :提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
Android的相关文件类型
Java文件-----应用程序源文件
android 本身相当一部分都是用java 编写而成(基本上架构图里头蓝色的部份都是用Java 开发的),android 的
应用必须使用java 来开发。
Class文件------Java编译后的目标文件
不像J2se,java 编译成class 就可以直接运行,android 平台上class 文件不能直接在android 上运行。由于Google
使用了自己的Dalvik 来运行应用,所以这里的class 也肯定不能在AndroidDalvik 的java 环境中运行,android
的class 文件实际上只是编译过程中的中间目标文件,需要链接成dex 文件后才能在dalvik 上运行。
Dex文件-----Android平台上的可执行文件
Android 虚拟机Dalvik 支持的字节码文件格式Google 在新发布的Android 平台上使用了自己的Dalvik 虚拟机
来定义,这种虚拟机执行的并非Java 字节码,而是另一种字节码:dex 格式的字节码。在编译Java 代码之后,
通过Android 平台上的工具可以将Java 字节码转换成Dex 字节码。虽然Google 称Dalvik 是为了移动设备定
做的,但是业界很多人认为这是为了规避向sun 申请Javalicense。这个DalvikVM 针对手机程式/CPU 做过最
佳化,可以同时执行许多VM 而不会占用太多Resource。
Apk文件-------Android上的安装文件
Apk 是Android 安装包的扩展名,一个Android 安装包包含了与某个Android 应用程序相关的所有文件。apk
文件将AndroidManifest.xml 文件、应用程序代码(.dex 文件)、资源文件和其他文件打成一个压缩包。一个工
程只能打进一个.apk 文件。
Android 的应用程序结构分析:HelloActivity
本例以一个简单的HelloActivity 程序为例,简单介绍Android 应用程序的源代码结构。事实
上,Android 应用程序虽然不是很复杂,但是通常涉及了JAVA 程序,XML 文件,Makefile
多方面的内容。HelloActivity 虽然简单,但是麻雀虽小,五脏俱全,是学习Android 应用程
序的最好示例。
第一部分:HelloActivity 的源代码
HelloActivity 工程的源代码在Android 目录的development/samples/HelloActivity/中,代码的
结构如下所示:
其中tests 是一个独立的项目,可以暂时不考虑。其他部分看作一个Android 的一应用程序
的工程。这个工程主要的组成部分如下所示:
AndroidManifest.xml:工程的描述文件,在运行时有用处
Android.mk:整个工程的Makefile
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
| |-- layout
| | `-- hello_activity.xml
| `-- values
| `-- strings.xml
|-- src
| `-- com
| `-- example
| `-- android
| `-- helloactivity
| `-- HelloActivity.java
`-- tests
|-- Android.mk
|-- AndroidManifest.xml
`-- src
`-- com
`-- android
`-- helloactivity
`-- HelloActivityTest.java
res:放置资源文件的目录
src/com/example/android/helloactivity/HelloActivity.java:这是JAVA 类文件,这个文件的路径
表示在Andorid 的JAVA 包的结构中的位置, 这个包的使用方式为
com.example.android.helloactivity。
第二部分: 编译的中间结果
这个HelloActivity 工程经过编译后将生成
out/target/common/obj/APPS/He lloActivity_intermediates/ 目录, 这个目录中的内容都是
HelloActivity 工程相关的, 更具体地说都与development/samples/HelloActivity/ 中的
Android.mk 文件相关。
classes.dex
是一个最重要的文件,它是给Android 的JAVA 虚拟机Dalvik 运行的字节码文
件。
classes.jar
是一个JAR 文件,JAR 的含义为Java ARchive,也就是Java 归档,是一种与平台
无关的文件格式,可将多个文件合成一个文件。解压缩之后的目录结构:(JAVA 标准编译得
到的类)
out/target/common/obj/APPS/He lloActivity_intermediates/
|-- classes.dex (字节码)
|-- classes.jar (JAR 文件)
|-- public_resources.xml (根据resources 结构生成的xml)
`-- src
|-- R.stamp
`-- com
`-- example
`-- android
`-- helloactivity
`-- R.java (resources 生成的文件)
各个以class 为扩展名的文件,事实上是JAVA 程序经过编译后的各个类的字节码。
第三部分: 目标apk 文件
目标apk 文件是Android 的JAVA 虚拟机Dalvik 安装和运行的文件,事实上这个apk 文件将
由编译的中间结果和原始文件生成。apk 文件的本质是一个zip 包。这个APK 包解压缩后的
目录结构如下所示:
值得注意的是,这里的xml 文件经过了处理,和原始的文件不太一样,不能按照文本文件
的方式阅读。
classes
|-- META-INF
| `-- MANIFEST.MF
`-- com
`-- example
`-- android
`-- helloactivity
|-- HelloActivity.class
|-- R$attr.class
|-- R$id.class
|-- R$layout.class
|-- R$string.class
`-- R.class
out/target/product/generic/obj/APPS/HelloActivity_intermediates/package.apk_FILES/
|-- AndroidManifest.xml
|-- META-INF
| |-- CERT.RSA
| |-- CERT.SF
| `-- MANIFEST.MF
|-- classes.dex
|-- res
| `-- layout
| `-- hello_activity.xml
`-- resources.arsc
第四部分: 源代码的各个文件
Android.mk 是整个工程的“Makefile”,其内容如下所示:
.. LOCAL_PATH:= $(call my-dir)
.. include $(CLEAR_VARS)
.. LOCAL_MODULE_TAGS := samples
.. # Only compile source java files in this apk.
.. LOCAL_SRC_FILES := $(call all-java-files-under, src)
.. LOCAL_PACKAGE_NAME := HelloActivity
.. LOCAL_SDK_VERSION := current
.. include $(BUILD_PACKAGE)
.. # Use the following include to make our test apk.
.. include $(call all-makefiles-under,$(LOCAL_PATH))
这个文件在各个Android 的工程中都是类似的,其中LOCAL_PACKAGE_NAME 表示了这
个包的名字。LOCAL_MODULE_TAGS 表示了模块的标,在这里使用的是
samples,正式的应用程序(packages 目录中的应用)中多使用eng development。
AndroidManifest.xml 是这个HelloActivity 工程的描述文件,其内容如下所示:
其中package 用于说明这个包的名称,android:labeapplication 中的内容是表示这个应用程序
在界面上显示的标题,activity 中的android:name 表示这个Android 的活动的名称。
文件src/com/example/android/helloactivity/HelloActivity.java 是程序主要文件,由JAVA 语言
写成
com.example.android.helloactivity 表示的是这个包的名称, 在文件的头部引入了两个包
android.app.Activity 是一个Android 活动( Activity)包,每一个Android 活动都需要继承
Activity 类。
包android.os.Bundle 用于映射字符串的值。
onCreate()是一个重载的函数,在这个函数中实现应用程序创建的所执行的过程。其中
setContentView()设置当前的视图(View)。
设置的方法是使用一个文件,这个文件因此决定了视图中包含的内容。这里使用的是
R.layout.hello_activity,表示从res/layout/目录中使用hello_activity.xml 文件。
res/layout/hello_activity.xml 文件的内容如下所示:
其中定义了一个可编辑的文本( EditText),下面的各项其实是它的各种属性, android:text 表示这个文本的
内容,string/hello_activity_text_text 表示找到相应的文件, 也就是res/value/string.xml 文件中的
hello_activity_text_text 文本。
res/value/string.xml 的内容如下所示:
hello_activity_text_text 文本被res/layout/hello_activity.xml 文件引用,正是应用程序运行时在
屏幕显示的文本。
adb(Android Debug Bridge)是Android 提供的一个通用调试工具,借助这个工具,我妈可以管理设备或手机模
拟器的状态。
adb功能操作:
.. 快速更新设备或手机模拟器中的代码,如应用或Android 系统升级
.. 在设备上运行shell 命令
.. 管理设备或手机模拟器上预定端口
.. 在设备或手机模拟器上复制、粘贴文件
adb常用操作:
安装应用到模拟器
Android 没有提供一个卸载应用的命令,只能手动删除:
进入设备或模拟器的Shell
通过以上命令,可以进入设备或模拟器的shell 环境中,在这个Linux Shell 中,你可以执行各种Linux 的命令,
另外如果只想执行一条shell 命令,可以采用以下方式:
如:
会打印出内核的调试信息
发布端口
可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb install app.apk
adb shell
cd data/app
rm app.apk
adb shell
adb shell [command]
adb shell dmesg
adb forward tcp:5555 tcp:8000
复制文件
可向一个设备或从一个设备中复制文件
.. 复制一个文件或目录到设备或模拟器上:
如:
.. 从设备或模拟器上复制一个文件或目录
如:
搜索/等待模拟器、设备实例
取得当前运行的模拟器、设备的实例列表及每个实例的状态| 等待正在运行的设备
查看Bug 报告
记录无线通讯日志
无线通讯记录日志非常多,在运行时没必要记录,可以通过命令设置记录
获取设备ID 和序列号
访问数据库SQLite3
adb push
adb push test.txt /tmp/test.txt
adb pull
adb pull /android/lib/libwebcore.os
adb devices
adb wait-for-device
adb bugreport
adb shell
logcat -b radio
adb get-product
adb get-serialno
adb shell
sqlite3
Dalvik冲击
随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预
期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java 社区是一石激起千层浪,
这就是Android 平台的基础——Dalvik 虚拟机。
Dalvik和标准Java虚拟机(JVM)首要差别
Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费
的时间更短。
Dalvik和Java运行环境的区别
Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的
Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.
Dalvik形势
Dalvik 的诞生也导致人们开始忧虑Java 平台的第一次大规模的分道扬镳或许已经是进行时了——有人已经把
Davlik 和微软的JVM 以及Sun 对微软的诉讼联系起来,等着看Google 身上是否也会发生类似事情;另外一
些人则指出,Google 并没有宣称Dalvik 是一个Java 实现,而微软却是这样做的。Sun 也对可能带来的阵营
分裂表达了忧虑情绪,并提出和Google 合作来保证Dalvik 和JVM 之间的兼容性——Google 对此的解释是,
Dalvik 是对解决目前JavaME 平台上分裂的一次尝试,也是为了提供一个拥有较少限制许可证的平台。甚至
还有人怀疑这是否是Sun 和Google 两大阵营对Java 之未来的一次大规模较量。
Android 中各种JAVA 包的功能描述
在Android 的应用程序开发中,通常使用的是JAVA 语言,除了需要熟悉JAVA 语
言的基础知识之外,还需要了解Android 提供的扩展的JAVA 功能。
在一般的JAVA 应用中,如果需用引用基础类库,通常需要使用如下的方式:
import javax.swing.*;
以上代码表示了引用JAVA 的GUI 组件Swing,javax.swing 即JAVA 中的一个包。
android 提供一些扩展的JAVA 类库,类库分为若干个包,每个包中包含若干个类。
重要包的描述:
android.app :提供高层的程序模型、提供基本的运行环境
android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL 的工具
android.provider :提供类访问Android 的内容提供者
android.telephony :提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
Android的相关文件类型
Java文件-----应用程序源文件
android 本身相当一部分都是用java 编写而成(基本上架构图里头蓝色的部份都是用Java 开发的),android 的
应用必须使用java 来开发。
Class文件------Java编译后的目标文件
不像J2se,java 编译成class 就可以直接运行,android 平台上class 文件不能直接在android 上运行。由于Google
使用了自己的Dalvik 来运行应用,所以这里的class 也肯定不能在AndroidDalvik 的java 环境中运行,android
的class 文件实际上只是编译过程中的中间目标文件,需要链接成dex 文件后才能在dalvik 上运行。
Dex文件-----Android平台上的可执行文件
Android 虚拟机Dalvik 支持的字节码文件格式Google 在新发布的Android 平台上使用了自己的Dalvik 虚拟机
来定义,这种虚拟机执行的并非Java 字节码,而是另一种字节码:dex 格式的字节码。在编译Java 代码之后,
通过Android 平台上的工具可以将Java 字节码转换成Dex 字节码。虽然Google 称Dalvik 是为了移动设备定
做的,但是业界很多人认为这是为了规避向sun 申请Javalicense。这个DalvikVM 针对手机程式/CPU 做过最
佳化,可以同时执行许多VM 而不会占用太多Resource。
Apk文件-------Android上的安装文件
Apk 是Android 安装包的扩展名,一个Android 安装包包含了与某个Android 应用程序相关的所有文件。apk
文件将AndroidManifest.xml 文件、应用程序代码(.dex 文件)、资源文件和其他文件打成一个压缩包。一个工
程只能打进一个.apk 文件。
Android 的应用程序结构分析:HelloActivity
本例以一个简单的HelloActivity 程序为例,简单介绍Android 应用程序的源代码结构。事实
上,Android 应用程序虽然不是很复杂,但是通常涉及了JAVA 程序,XML 文件,Makefile
多方面的内容。HelloActivity 虽然简单,但是麻雀虽小,五脏俱全,是学习Android 应用程
序的最好示例。
第一部分:HelloActivity 的源代码
HelloActivity 工程的源代码在Android 目录的development/samples/HelloActivity/中,代码的
结构如下所示:
其中tests 是一个独立的项目,可以暂时不考虑。其他部分看作一个Android 的一应用程序
的工程。这个工程主要的组成部分如下所示:
AndroidManifest.xml:工程的描述文件,在运行时有用处
Android.mk:整个工程的Makefile
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
| |-- layout
| | `-- hello_activity.xml
| `-- values
| `-- strings.xml
|-- src
| `-- com
| `-- example
| `-- android
| `-- helloactivity
| `-- HelloActivity.java
`-- tests
|-- Android.mk
|-- AndroidManifest.xml
`-- src
`-- com
`-- android
`-- helloactivity
`-- HelloActivityTest.java
res:放置资源文件的目录
src/com/example/android/helloactivity/HelloActivity.java:这是JAVA 类文件,这个文件的路径
表示在Andorid 的JAVA 包的结构中的位置, 这个包的使用方式为
com.example.android.helloactivity。
第二部分: 编译的中间结果
这个HelloActivity 工程经过编译后将生成
out/target/common/obj/APPS/He lloActivity_intermediates/ 目录, 这个目录中的内容都是
HelloActivity 工程相关的, 更具体地说都与development/samples/HelloActivity/ 中的
Android.mk 文件相关。
classes.dex
是一个最重要的文件,它是给Android 的JAVA 虚拟机Dalvik 运行的字节码文
件。
classes.jar
是一个JAR 文件,JAR 的含义为Java ARchive,也就是Java 归档,是一种与平台
无关的文件格式,可将多个文件合成一个文件。解压缩之后的目录结构:(JAVA 标准编译得
到的类)
out/target/common/obj/APPS/He lloActivity_intermediates/
|-- classes.dex (字节码)
|-- classes.jar (JAR 文件)
|-- public_resources.xml (根据resources 结构生成的xml)
`-- src
|-- R.stamp
`-- com
`-- example
`-- android
`-- helloactivity
`-- R.java (resources 生成的文件)
各个以class 为扩展名的文件,事实上是JAVA 程序经过编译后的各个类的字节码。
第三部分: 目标apk 文件
目标apk 文件是Android 的JAVA 虚拟机Dalvik 安装和运行的文件,事实上这个apk 文件将
由编译的中间结果和原始文件生成。apk 文件的本质是一个zip 包。这个APK 包解压缩后的
目录结构如下所示:
值得注意的是,这里的xml 文件经过了处理,和原始的文件不太一样,不能按照文本文件
的方式阅读。
classes
|-- META-INF
| `-- MANIFEST.MF
`-- com
`-- example
`-- android
`-- helloactivity
|-- HelloActivity.class
|-- R$attr.class
|-- R$id.class
|-- R$layout.class
|-- R$string.class
`-- R.class
out/target/product/generic/obj/APPS/HelloActivity_intermediates/package.apk_FILES/
|-- AndroidManifest.xml
|-- META-INF
| |-- CERT.RSA
| |-- CERT.SF
| `-- MANIFEST.MF
|-- classes.dex
|-- res
| `-- layout
| `-- hello_activity.xml
`-- resources.arsc
第四部分: 源代码的各个文件
Android.mk 是整个工程的“Makefile”,其内容如下所示:
.. LOCAL_PATH:= $(call my-dir)
.. include $(CLEAR_VARS)
.. LOCAL_MODULE_TAGS := samples
.. # Only compile source java files in this apk.
.. LOCAL_SRC_FILES := $(call all-java-files-under, src)
.. LOCAL_PACKAGE_NAME := HelloActivity
.. LOCAL_SDK_VERSION := current
.. include $(BUILD_PACKAGE)
.. # Use the following include to make our test apk.
.. include $(call all-makefiles-under,$(LOCAL_PATH))
这个文件在各个Android 的工程中都是类似的,其中LOCAL_PACKAGE_NAME 表示了这
个包的名字。LOCAL_MODULE_TAGS 表示了模块的标,在这里使用的是
samples,正式的应用程序(packages 目录中的应用)中多使用eng development。
AndroidManifest.xml 是这个HelloActivity 工程的描述文件,其内容如下所示:
其中package 用于说明这个包的名称,android:labeapplication 中的内容是表示这个应用程序
在界面上显示的标题,activity 中的android:name 表示这个Android 的活动的名称。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.helloactivity" > <application android:label="He llo, Activity!"> <activity android:name="He lloActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
文件src/com/example/android/helloactivity/HelloActivity.java 是程序主要文件,由JAVA 语言
写成
com.example.android.helloactivity 表示的是这个包的名称, 在文件的头部引入了两个包
android.app.Activity 是一个Android 活动( Activity)包,每一个Android 活动都需要继承
Activity 类。
包android.os.Bundle 用于映射字符串的值。
onCreate()是一个重载的函数,在这个函数中实现应用程序创建的所执行的过程。其中
setContentView()设置当前的视图(View)。
设置的方法是使用一个文件,这个文件因此决定了视图中包含的内容。这里使用的是
R.layout.hello_activity,表示从res/layout/目录中使用hello_activity.xml 文件。
res/layout/hello_activity.xml 文件的内容如下所示:
其中定义了一个可编辑的文本( EditText),下面的各项其实是它的各种属性, android:text 表示这个文本的
内容,string/hello_activity_text_text 表示找到相应的文件, 也就是res/value/string.xml 文件中的
hello_activity_text_text 文本。
res/value/string.xml 的内容如下所示:
hello_activity_text_text 文本被res/layout/hello_activity.xml 文件引用,正是应用程序运行时在
屏幕显示的文本。
package com.example.android.helloactivity; import android.app.Activity; import android.os.Bundle; public class HelloActivity extends Activity { public HelloActivity() { }@ Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_activity); } }
<?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="18sp" android:autoText="true" android:capitalize="sentences" android:text="@string/hello_activity_text_text" /> <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello_activity_text_text" >He llo, World!</string> </resources>AndroidADB工具使用
adb(Android Debug Bridge)是Android 提供的一个通用调试工具,借助这个工具,我妈可以管理设备或手机模
拟器的状态。
adb功能操作:
.. 快速更新设备或手机模拟器中的代码,如应用或Android 系统升级
.. 在设备上运行shell 命令
.. 管理设备或手机模拟器上预定端口
.. 在设备或手机模拟器上复制、粘贴文件
adb常用操作:
安装应用到模拟器
Android 没有提供一个卸载应用的命令,只能手动删除:
进入设备或模拟器的Shell
通过以上命令,可以进入设备或模拟器的shell 环境中,在这个Linux Shell 中,你可以执行各种Linux 的命令,
另外如果只想执行一条shell 命令,可以采用以下方式:
如:
会打印出内核的调试信息
发布端口
可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb install app.apk
adb shell
cd data/app
rm app.apk
adb shell
adb shell [command]
adb shell dmesg
adb forward tcp:5555 tcp:8000
复制文件
可向一个设备或从一个设备中复制文件
.. 复制一个文件或目录到设备或模拟器上:
如:
.. 从设备或模拟器上复制一个文件或目录
如:
搜索/等待模拟器、设备实例
取得当前运行的模拟器、设备的实例列表及每个实例的状态| 等待正在运行的设备
查看Bug 报告
记录无线通讯日志
无线通讯记录日志非常多,在运行时没必要记录,可以通过命令设置记录
获取设备ID 和序列号
访问数据库SQLite3
adb push
adb push test.txt /tmp/test.txt
adb pull
adb pull /android/lib/libwebcore.os
adb devices
adb wait-for-device
adb bugreport
adb shell
logcat -b radio
adb get-product
adb get-serialno
adb shell
sqlite3
- 新版Android开发教程_笔记四--Dalvik_ADB.pdf (3.1 MB)
- 下载次数: 9
发表评论
-
Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
2015-12-18 22:23 516转载请注明出处:http:// ... -
android arcgis map应用
2013-10-14 20:11 13911 符号渲染 1.1 Symbol Symbol主要是对Gr ... -
lost android 开发教程二
2012-04-19 13:13 1923第二季课程介绍 1、控件使用方法介绍 Sprinner, ... -
android基础
2011-08-10 21:23 1060lost in android Linux 环境 ... -
3G应用开发之Android
2011-04-10 21:12 1654什么是3G 3G,全称为3rd Generation,中文含义 ... -
扫雷游戏
2011-02-25 16:32 1256MineSweeper是一个不错的Android开源扫雷游戏, ... -
应用、permission、资源
2011-02-25 13:45 1484应用 为程序添加Menu菜单 //创建OptionsMenu ... -
文件存取、数据库编程
2011-02-25 13:41 727文件存取、数据库编程 -
新版Android开发可视化UI设计DroidDraw
2011-02-24 15:16 1270新版Android开发可视化UI设计DroidDraw -
Android 基础UI编程4
2011-02-23 11:39 1404Android 基础UI编程 专业相框设计 ImageView ... -
Android UI编程基础3
2011-02-23 09:11 1089Android UI编程基础 EditText 与TextVi ... -
Android 基础UI编程2
2011-02-21 10:29 1077Android 基础UI编程 标题、状态栏的隐藏 标题栏隐藏 ... -
Android 基础UI编程1
2011-02-18 15:45 959Android 基础UI编程 更改与显示文字标签 TextVi ... -
android开发--布局
2011-02-17 16:25 1056Android应用开发3 使用Bundle在Activity间 ... -
Android 模拟器
2011-02-17 15:40 1470Android 模拟器 模拟器参数 参数格式 option 选 ... -
Android开发环境搭建
2011-02-17 09:38 1353Android开发环境搭建 ADV的创建 ADT0.9.1 版 ... -
基础入门一
2011-02-17 09:12 1086开放手机联盟--Open HandsetAlliance 什么 ...
相关推荐
在Android开发过程中,Dalvik和ADB(Android Debug Bridge)是两个至关重要的概念。这份"新版Android开发教程&笔记4--Dalvik ADB"显然会深入探讨这两个主题,帮助开发者更好地理解和掌握Android系统的运行机制以及...
综上所述,“Android调试-adb-zip版本”涵盖了adb的使用、版本管理和其在Android开发过程中的核心作用。熟练掌握adb的使用技巧,对于优化开发流程和提升问题解决效率具有显著意义。在实际工作中,开发者应根据项目...
### 新版Android开发教程&笔记四--Dalvik ADB #### Android虚拟机Dalvik解析 随着Google发布的Android SDK,不仅带来了新的开发环境和技术规范,更重要的是引入了一个全新的虚拟机技术——Dalvik虚拟机。这一技术...
在“新版Android开发教程&笔记四--Dalvik ADB.pdf”这份文档中,你将深入了解到如何设置和使用ADB,包括安装ADB环境、连接设备、调试应用等基本步骤。此外,文档可能还会涵盖如何利用ADB进行设备控制、数据备份和...
ADB(Android Debug Bridge)是Android开发中的一个关键工具,它为开发者提供了命令行接口,用于在计算机和Android设备之间进行通信。"android-ADB工具-windows.zip"是一个专门为Windows用户提供的ADB工具包,包含了...
总之,`Android SDK Build-Tools`是Android开发不可或缺的部分,尤其在React Native这种混合开发框架中。当遇到下载问题时,手动解压并安装可以作为一个有效的解决途径。理解`build-tools`的组成和功能,对于开发者...
总结来说,“android-sdk-macosx.zip”为macOS用户提供了完整的Android开发环境。通过熟练掌握并运用其中的工具和组件,开发者能够高效地构建、测试和优化Android应用程序。理解这些核心概念和流程对于任何Android...
在1.0.31这个版本中,我们只看到了基本的ADB工具,没有包含其他扩展工具,如DDMS(Dalvik Debug Monitor Service)或Hprof-conv等。 1. **ADB的主要功能:** - **设备管理**:ADB能够识别并连接到连接到电脑的安卓...
新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--基础UI编程1 新版Android开发教程+笔记八--基础UI...
新版Android开发教程&笔记四--Dalvik ADB.pdf 新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发教程+笔记七--基础UI编程1.pdf 新版Android开发...
新版Android开发教程&笔记四--Dalvik ADB.pdf 新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发教程+笔记七--基础UI编程1.pdf 新版Android开发...
标题“adb-fastboot”所涉及的知识点主要围绕Android Debug Bridge(ADB)和Fastboot两个重要的Android开发和管理工具。ADB是一个多功能命令行工具,它允许开发者与Android设备进行通信,执行各种任务,如调试应用、...
总结,`android-sdk_r21-windows.zip`是Android开发的关键组成部分,提供了开发、测试和调试Android应用所需的全套工具。无论是初学者还是经验丰富的开发者,都需要掌握这个SDK的使用,以充分利用Android平台的潜力...
新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--基础UI编程1 新版Android开发教程+笔记八--基础UI...
新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程&笔记五--模拟器、应用1、2 新版Android开发教程&笔记六--应用3、4 布局 新版Android开发教程&笔记七--基础UI编程1 新版Android开发教程&笔记八--基础UI...
新版Android开发教程&笔记04--Dalvik ADB 新版Android开发教程+笔记05--模拟器、应用1、2 新版Android开发教程+笔记06--应用3、4 布局 新版Android开发教程+笔记07--基础UI编程1 新版Android开发教程+笔记08--基础UI...
Android SDK (SDK Platforms)-android-19.zip 是一个包含了Android开发平台版本19的压缩包,主要用于Android开发者在构建、测试和调试针对Android 4.4 KitKat系统应用时使用。这个压缩包提供了必要的API库、工具和...
android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境搭建与解析,Android开发教程&笔记4--Dalvik ADB Android开发教程+笔记5--模拟器...
4. **Eclipse ADT Plugin**: 虽然在描述中未提及,但考虑到1.5_r3的年代,当时Android开发主要依赖Eclipse IDE,ADT(Android Developer Tools)插件是必不可少的,它允许开发者在Eclipse中创建、编辑、调试和发布...