`
xiaonao880516
  • 浏览: 58335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android的一些底层基础知识(转载)

阅读更多
一、重要包的描述:
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 元素(大部分是可见的)在应用程序的屏幕中使用

二、虚拟机Dalvik
Dalvik 和标准Java 虚拟机(JVM)首要差别是:Dalvik 基于寄存器,而JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

Dalvik 和Java 运行环境的区别是:Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

三、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 字节码。

Apk 文件-------Android 上的安装文件
Apk 是Android 安装包的扩展名,一个Android 安装包包含了与某个Android 应用程序相关的所有文件。apk文件将AndroidManifest.xml 文件、应用程序代码(.dex 文件)、资源文件和其他文件打成一个压缩包。一个工程只能打进一个.apk 文件。

四、关于应用程序
以helloworld为例,编译出来的class文件,放置在\bin\oms\samples\home中。编译出来的apk在bin文件中,可以用winrar打开,组织结构类似工程。

运行环境描述   .classpath内容为:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/OPhone"/>
<classpathentry kind="output" path="bin"/>
</classpath>

工程配置文件   .project内容为:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>HomeAPIDemoActivity</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>


五、调试
adb 功能操作:
? 快速更新设备或手机模拟器中的代码,如应用或Android 系统升级
? 在设备上运行shell 命令
? 管理设备或手机模拟器上预定端口
? 在设备或手机模拟器上复制、粘贴文件

adb 常用操作:
安装应用到模拟器
adb install app.apk

Android 没有提供一个卸载应用的命令,只能手动删除:
adb shell
cd data/app
rm app.apk

进入设备或模拟器的Shell
adb shell
通过以上命令,可以进入设备或模拟器的shell 环境中,在这个Linux Shell 中,你可以执行各种Linux 的命令,
adb shell [command]
另外如果只想执行一条shell 命令,可以采用以下方式:
如:adb shell dmesg
会打印出内核的调试信息
发布端口
可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000

复制文件
可向一个设备或从一个设备中复制文件
? 复制一个文件或目录到设备或模拟器上:
adb push
如:
adb push test.txt /tmp/test.txt

? 从设备或模拟器上复制一个文件或目录
adb pull
如:
adb pull /android/lib/libwebcore.os
搜索/等待模拟器、设备实例
adb devices

取得当前运行的模拟器、设备的实例列表及每个实例的状态| 等待正在运行的设备
adb wait-for-device

查看Bug 报告
adb bugreport

记录无线通讯日志
adb shell
logcat -b radio

无线通讯记录日志非常多,在运行时没必要记录,可以通过命令设置记录获取设备ID 和序列号
adb get-product
adb get-serialno

访问数据库SQLite3
adb shell
sqlite3
分享到:
评论

相关推荐

    Android底层开发技术实战详解_android底层_

    《Android底层开发技术实战详解》是一本面向Android底层开发者的专业书籍,旨在深入解析Android系统的内核层次结构、驱动程序开发、性能优化等关键领域的知识。本书内容丰富,覆盖了从硬件接口到软件实现的各个层面...

    android_底层开发教程

    Linux Kernel 是 Android 系统的基础,了解 Linux Kernel 的知识是非常重要的。推荐阅读《Linux Kernel Development》、《Understanding the Linux Kernel》、《Linux Device Drivers》和《Linux 内核源代码情景...

    Android底层开发实战_Android底层开发实战_android_android开发实战_

    《Android底层开发实战》这...通过阅读《Android底层开发实战》,开发者不仅可以掌握Android底层开发的基础知识,还能学习到如何解决实际开发中遇到的问题,提升系统级优化能力,从而成为一名更全面的Android开发专家。

    Android的底层库

    1. **本地实现底层的结构**:这部分着重介绍了Android底层的一些基础库和程序。它们是Android系统能够正常运行的关键所在,包括但不限于上述提到的libcutils、Init进程等。 2. **增加本地程序和库的方法**:对于...

    Android+底层开发

    ### Android+底层开发知识点 #### 一、Android开发技术分类 Android开发主要可以分为三大类:应用程序开发、系统开发以及移植开发。 1. **应用程序开发**:主要关注于上层应用层面,开发者通过使用Android SDK...

    Android 底层接口与驱动开发技术详解

    首先,书中详细介绍了Android驱动开发的基础知识,包括Linux内核、设备树和编译环境的搭建。这部分内容对于初学者来说至关重要,因为驱动开发离不开对Linux内核的理解和操作。同时,设备树的配置是Android系统适配...

    Android基础知识详解【PDF文档】

    在介绍Android的基础知识时,首先需要了解其系统架构。Android采用了分层的设计,从上到下依次分为应用程序层、应用程序框架层、Android运行时和库、Linux内核四个层次。各个层次承担着不同的功能,保证了整个系统的...

    android底层开发技术实战详解内核移植和驱动

    总结来说,《Android底层开发技术实战详解:内核移植与驱动》全面覆盖了Android底层开发的重要领域,无论是对Linux内核的深入了解,还是实际操作中的内核移植,或是驱动程序的开发,都为读者提供了丰富的知识和实践...

    Android系统底层Jar包

    Android系统底层Jar包

    Android系统概述——底层开发的资料

    这份“Android系统概述——底层开发的资料”可能涵盖了上述各个方面的知识,包括源码分析、驱动开发、系统优化等内容,旨在帮助开发者深入理解Android系统并进行有效的底层开发。通过学习和实践,你可以掌握Android...

    Android 底层开发实战中文高清完整版.pdf

    Android 底层开发实战中文高清完整版.pdf Android 底层开发实战中文高清完整版.pdf

    android底层原理课件(500强内部)

    第二章《Android基础知识》:深入讲解了Android系统架构,包括Linux内核、HAL(硬件抽象层)、System Server、应用程序框架以及应用程序本身。通过这部分学习,开发者可以了解到Android是如何将硬件资源和上层应用...

    Android底层原理培训课件全套(500强内部)

    总的来说,这套培训课件旨在提供一个全面的Android底层知识体系,从基本的开发环境到复杂的内核驱动,再到具体的组件和服务,对提升Android开发者的技术深度和广度大有裨益。通过深入学习,开发者能够更好地理解...

    Android底层开发技术实战详解 内核、移植和驱动

    在Android操作系统中,这些部分是构建强大、稳定且高效移动应用的基础。以下是这些关键领域的详细说明: 1. **Android内核**:Android系统基于Linux内核,它是整个操作系统的基石。内核负责管理硬件资源,如处理器...

    android框架(从底层到应用层)

    android从底层到应用层的详细讲解。android从底层到应用层的详细讲解。android从底层到应用层的详细讲解。android从底层到应用层的详细讲解。android从底层到应用层的详细讲解。android从底层到应用层的详细讲解。

    Android底层开发技术实战详解

    本书从底层原理开始讲起,结合真实的案例向读者详细介绍了Android内核、移植和驱动开发的整个流程。全书分为21章,依次讲解...在每一章中,重点介绍了与Android驱动开发相关的底层知识,并对Android源码进行了剖析。

    Android底层开发技术实战详解-内核、移植和驱动(第2版,Kindle电子书)

    本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和驱动开发的整个流程。全书分为19章,依次讲解...在每一章中,重点介绍了与android驱动开发相关的底层知识,并对android源码进行了剖析。

    Android底层开发实战

    本书以PDF格式提供,涵盖了从嵌入式系统的基本概念到Linux系统和Android开发环境的构建,再到Android系统底层源码和内核结构的解析,为读者提供了全面而深入的Android底层开发知识体系。 首先,书中的“嵌入式系统...

    android同linux底层通信机制实现

    【Android与Linux底层通信机制实现】是Android系统开发中的核心环节,它涉及到Java层与JNI层的交互以及如何调用Linux底层驱动。Android应用程序主要由Java编写,运行在Dalvik虚拟机上,但为了实现与硬件设备的直接...

Global site tag (gtag.js) - Google Analytics