当前位置:首页 » 安卓系统 » android类库

android类库

发布时间: 2022-04-26 00:46:40

Ⅰ android apk 包括 android 基础类库吗

流程概述:
1、打包资源文件,生成R.java文件
2、处理aidl文件,生成相应java 文件
3、编译工程源代码,生成相应class 文件
4、转换所有class文件,生成classes.dex文件
5、打包生成apk
6、对apk文件进行签名
7、对签名后的apk文件进行对其处理

打包过程使用的工具
名称
功能介绍 在操作系统中的路径 源码路径
aapt
(Android Asset Package Tool)
Android资源打包工具
${ANDROID_SDK_HOME} /build-tools/
ANDROID_VERSION/aapt
frameworks\base\tools\aap
aidl
(android interface definition language)
Android接口描述语言,

将aidl转化为.java文件的工具

${ANDROID_SDK_HOME}/build-tools/
ANDROID_VERSION/aidl
frameworks\base\tools\aidl
javac Java Compiler
${JDK_HOME}/java

c或/usr/bin/javac

dex
转化.class文件为Davik VM
能识别的.dex文件
${ANDROID_SDK_HOME}/build-tools/
ANDROID_VERSION/dx

apkbuilder
生成apk包
${ANDROID_SDK_HOME}/tools/
apkbuilder
sdk\sdkmanager\libs\sdklib\
src\com\android\sdklib\build\
ApkBuilderMain.java
jarsigner .jar文件的签名工具 ${JDK_HOME}/jarsigner或/usr/bin/jarsigner

zipalign 字节码对齐工具
${ANDROID_SDK_HOME}/tools

/zipalign

第一步:打包资源文件,生成R.java文件。
【输入】Resource文件(就是工程中res中的文件)、Assets文件(相当于另外一种资源,这种资源Android系统并不像对res中的文件那样优化它)、AndroidManifest.xml文件(包名就是从这里读取的,因为生成R.java文件需要包名)、Android基础类库(Android.jar文件)
【工具】aapt工具
【输出】打包好的资源(bin目录中的resources.ap_文件)、R.java文件(gen目录中)
打包资源的工具aapt,大部分文本格式的XML资源文件会被编译成二进制格式的XML资源文件,除了assets和res/raw资源被原装不动地打包进APK之外,其它的资源都会被编译或者处理。 。
生成过程主要是调用了aapt源码目录下的Resource.cpp文件中的buildResource()函数,该函数首先检查AndroidManifest.xml的合法性,然后对res目录下的资源子目录进行处理,处理的函数为makeFileResource(),处理的内容包括资源文件名的合法性检查,向资源表table添加条目等,处理完后调用compileResourceFile()函数编译res与asserts目录下的资源并生成resources.arsc文件,compileResourceFile()函数位于aapt源码目录的ResourceTable.cpp文件中,该函数最后会调用parseAndAddEntry()函数生成R.java文件,完成资源编译后,接下来调用compileXmlfile()函数对res目录的子目录下的xml文件分别进行编译,这样处理过的xml文件就简单的被“加密”了,最后将所有的资源与编译生成的resorces.arsc文件以及“加密”过的AndroidManifest.xml文件打包压缩成resources.ap_文件(使用Ant工具命令行编译则会生成与build.xml中“project name”指定的属性同名的ap_文件)。
关于这一步更详细的流程可阅读http://blog.csdn.net/luoshengyang/article/details/8744683

第二步:处理aidl文件,生成相应的java文件。
【输入】源码文件、aidl文件、framework.aidl文件
【工具】aidl工具
【输出】对应的.java文件
对于没有使用到aidl的android工程,这一步可以跳过。aidl工具解析接口定义文件并生成相应的java代码供程序调用。

第三步:编译工程源代码,生成下相应的class文件。
【输入】源码文件(包括R.java和AIDL生成的.java文件)、库文件(.jar文件)
【工具】javac工具
【输出】.class文件
这一步调用了javac编译工程src目录下所有的java源文件,生成的class文件位于工程的bin\classes目录下,上图假定编译工程源代码时程序是基于android SDK开发的,实际开发过程中,也有可能会使用android NDK来编译native代码,因此,如果可能的话,这一步还需要使用android NDK编译C/C++代码,当然,编译C/C++代码的步骤也可以提前到第一步或第二步。

第四步:转换所有的class文件,生成classes.dex文件。
【输入】 .class文件(包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class文件),库文件(.jar文件)
【工具】javac工具
【输出】.dex文件
前面多次提到,android系统dalvik虚拟机的可执行文件为dex格式,程序运行所需的classes.dex文件就是在这一步生成的,使用的工具为dx,dx工具主要的工作是将java字节码转换为dalvik字节码、压缩常量池、消除冗余信息等。

第五步:打包生成apk。
【输入】打包后的资源文件、打包后类文件(.dex文件)、libs文件(包括.so文件,当然很多工程都没有这样的文件,如果你不使用C/C++开发的话)
【工具】apkbuilder工具
【输出】未签名的.apk文件
打包工具为apkbuilder,apkbuilder为一个脚本文件,实际调用的是android-sdk\tools\lib\sdklib.jar文件中的com.android.sdklib.build.ApkBuilderMain类。它的代码实现位于android系统源码的sdk\sdkmanager\libs\sdklib\src\com\android\sdklib\build\ApkBuilderMain.java文件,代码构建了一个ApkBuilder类,然后以包含resources.arsc的文件为基础生成apk文件,这个文件一般为ap_结尾,接着调用addSourceFolder()函数添加工程资源,addSourceFolder()会调用processFileForResource()函数往apk文件中添加资源,处理的内容包括res目录与asserts目录中的文件,添加完资源后调用addResourceFromJar()函数往apk文件中写入依赖库,接着调用addNativeLibraries()函数添加工程libs目录下的Native库(通过android NDK编译生成的so或bin文件),最后调用sealApk()关闭apk文件。

第六步:对apk文件进行签名。
【输入】未签名的.apk文件
【工具】jarsigner
【输出】签名的.apk文件
android的应用程序需要签名才能在android设备上安装,签名apk文件有两种情况:一种是在调试程序时进行签名,使用eclipse开发android程序时,在编译调试程序时会自己使用一个debug.keystore对apk进行签名;另一种是打包发布时对程序进行签名,这种情况下需要提供一个符合android开发文档中要求的签名文件。签名的方法也分两种:一种是使用jdk中提供的jarsigner工具签名;另一种是使用android源码中提供的signapk工具,它的代码位于android系统源码build\tools\signapk目录下。

第七步:对签名后的apk文件进行对齐处理。
【输入】签名后的.apk文件
【工具】zipalign工具
【输出】对齐后的.apk文件
这一步需要使用的工具为zipalign,它位于android-sdk\tools目录,源码位于android系统源码的build\tools\zipalign目录,它的主要工作是将spk包进行对齐处理,使spk包中的所有资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问apk文件时速度会更快,验证apk文件是否对齐过的工作由ZipAlign.cpp文件的verify()函数完成,处理对齐的工作则由process()函数完成。

以一个具体项目中包含的具体文件为例作图如下:

Ⅱ Android常用类库包都有哪些

Android 类库中,各种包写成android.*的方式,重要包的介绍如下:
android.app:提供高层的程序模型、提供基本的运行环境。
android.content:包含各种的对设备上的数据进行访问和发布的类。
android.database:通过内容提供者浏览和操作数据库
android.graphics:底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上。
android.location:定位和相关服务的类。
android.media:提供一些类管理多种音频、视频的媒体接口。
android.net:提供帮助网络访问的类,超过通常的java.net.*接口。
android.os:提供了系统服务、消息传输、IPC 机制。
android.opengl:提供OpenGL 的工具,3D 加速。
android.provider:提供类访问Android 的内容提供者。
android.telephony:提供与拨打电话相关的API交互。
android.view :提供基础的用户界面接口框架。
android.util:工具性的方法,例如时间日期的操作。
android.webkit:默认浏览器操作接口。 android.widget:包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用。

Ⅲ Android如何关联类库

首先是项目工程有两个,第一个是做为类库(library),第二个是主工程,这里说一下如何导入,这里使用的是eclipse:
第一步:和导入正常工程是一样的,导入以后对项目右键—>属性,有一个Is Library选项,打上勾即可。
如下图:

Ⅳ 有哪些常用或优秀的 Android 第三方类库

Android开发第三方类库分类:

  1. gifview 、 gifview2

    这两个项目是同一人开发的,用于显示gif动画,纯java解码 ,gif图片过大会产生OOM。

  2. android-gif-drawable

    一个也是用于解码显示gif的类库,采用jni解码,大GIF也不会产生oom,完美运行。

  3. PhotoView

    PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件。使用比较简单,提供了一个名为PhotoView的控件,可以直接像普通ImageView那样使用。

    特性:支持单点/多点触摸,即时缩放图片;支持平滑滚动;在滑动父控件下能够运行良好;(例如:ViewPager)

不同的环境使用不同的类库,不同的系统也是同样的道理。

Ⅳ android studio 怎么导入第三方类库

Android Studio导入第三方类库的方法:

第一、导入*.jar包

新建好了Android项目,添加一个第三方已经打包好的jar文件进你项目,下面就已添加一个odata4j的一个包

但是编译肯定还是会错误的

还必须在项目Httpzoid目录下添加一个build.gradle的这个文件,内容如下

buildscript {

repositories {

mavenCentral()

}

dependencies {

classpath 'com.android.tools.build:gradle:0.6.+'

}

}

apply plugin: 'android-library'

repositories {

mavenCentral()

}

android {

compileSdkVersion 18

buildToolsVersion "17.0.0"

defaultConfig {

minSdkVersion 14

targetSdkVersion 18

}

sourceSets {

main {

manifest.srcFile 'AndroidManifest.xml'

java.srcDirs = ['src']

resources.srcDirs = ['src']

aidl.srcDirs = ['src']

renderscript.srcDirs = ['src']

}

}

}

dependencies {

compile 'com.android.support:appcompat-v7:+'

compile files('libs/gson-2.2.4.jar')

}

这是后编译还会有可能报错

这时候可能需要修改一下Httpzoid目录下的AndroidManifest.xml文件有可能存在和你项目中文件有冲突或版本跨度太大导致语法的错误修改一下,做完以上几步android studio就可以导入第三方类库。


Ⅵ 为什么导入android项目后 ,找不到类库,所有类下都有红线。

首先,要Project ->Clean。多试几次之后如果还不行,就去看看是不是Android自带的类库是否导入成功,项目名右键属性->Android,重新选择一下版本,确定,让eclipse再导入一次Android自带类库。如果还不行,那就是项目中包含第三方的类库,缺少.jar包,向项目之前开发的人去要,然后再在Build Path中导入即可。

Ⅶ android studio2.0怎么导入第三方类库

打开android
studio2.0软件
选择
File
-->
new
-->
Import
Mole...
(注意不是
Import
Project
这个是导入项目
又会启动一个窗口)
这里我们看到界面如下图所示:
选择右边的按钮
然后我们看到弹出了选择文件的对话框
我们在电脑指定目录下找到我们需要导入的第三方类库
然后点击OK
如下图所示:
我们来看看是否已经成功导入了第三方类库,按快捷键
Ctrl+Shift+Alt+S键或选择左上角的Flie-->project
Structure...
弹出一个对话
我们选择
右上角的”Dependcies“就可以看到下面我们添加的第三方类库了

Ⅷ 手机上的文件夹“android”是什么意思

一、安卓手机的Android文件夹里面的文件夹是用来放程序数据的。
二、android
手机文件夹代表的意思:
1.
/system/app
这里是android手机rom中的系统应用存放地,如果有Root权限可以将手机rom中自带的应用删除掉,这里面一般包含一个apk文件和odex文件,大家注意文件名一一对应,如何删除可以参考
如何删除Android系统自带软件
中方法。
2.
/data/data
这里是每个安装过应用的用户文件存储位置,一般为设置文件、数据库或临时缓存文件,进入后以每个软件的package
name包名来命名。
3.
/dev
这里是Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统,一般用户无需理会。
4./system/fonts
这里面保存着系统的字体,如果你有root权限,可以往里添加自己喜欢的字体,比如雅黑。
5.
/system/framework
这里是android系统的框架,里面保存着系统核心程序或java类库,十分重要里面的任何文件几乎都不要做删除操作。
6.
/media/audio
这里面保存着安卓系统默认的铃声,alarms是闹铃提醒的,notification是短信或提示音,ringtones是来电铃声,而ui是一些界面音效,比如键盘敲击声。
7.
/system/lib
里面保存的是系统底层类库,里面很多都是框架层的实现文件,一般以.so后缀结尾类似windows下的dll文件
.
SD卡中
1.
/mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径,其中/mnt/sdcard/是android
2.2或更高版本所使用的,而/sdcard是android
2.1或早期版本的存储卡位置。
2.
/mnt/sdcard/dcim或/sdcard/dcim这个DCIM文件夹是干什么用的,这里android123提示大家,一般数码相机都有DCIM文件夹,其中进入后Camera为手机摄像头拍摄的照片或视频存放位置。同时在DCIM文件夹中还有.thumbnails这个目录,在Linux中开头为“.”的文件夹就是开头为“点”的文件夹是隐藏目录,这里面记录着手机SD卡图片的缩略图。
3.
/mnt/sdcard/LOST.DIR或/sdcard/LOST.DIR这个LOST.DIR为SD卡扫描时发现的丢失文件,里面的文件用处不大,可以不用理会。

Ⅸ android studio怎么引用类库

下面分两种情况介绍一下如何导入第三方类库。

1、对于jar的类库,非常简单,只要在项目根目录下新建一个libs目录,然后把jar复制进去,在jar上点击右键,选择Add as library,即可完成依赖的添加。

2、对于github等网站上下载的源码类库,是无法通过这种方式添加的。首先把git clone下来的整个文件夹放入项目根目录下,这里以我自己的开发包为例,我的开发包名字是ShunixDevKit,里面有一个lib目录才是真正的类库,那么我们要做的就是手动在settings.gradle里面添加:

include ':ShunixDevKit:lib'
注意,gradle使用:作为路径分隔符。这样Android Studio就知道了我们的类库放在哪里,当然这样还是不够的,要让项目能使用类库,我们还需要添加这个类库作为项目的依赖,选择File->Project Structure,然后选中主mole的名称,点击dependencies,添加:ShunixDevKit:lib就可以了,gradle的build就能成功。

以上就是添加第三方类库作为依赖的过程。这里需要注意一下的地方就是,导入的类库根目录下的gradlew文件一定要可执行,否则Android Studio会提示错误,而且根据错误信息很难找出来这个错误,我自己因为这个搞了很久,希望对大家有帮助。

热点内容
韩服lol挂机脚本 发布:2025-05-15 12:42:56 浏览:459
监控存储服务器如何调试 发布:2025-05-15 12:36:30 浏览:217
一万级净化车间有哪些配置 发布:2025-05-15 12:16:41 浏览:97
javazip解压加密 发布:2025-05-15 12:15:02 浏览:941
dnf服务器存放什么信息 发布:2025-05-15 12:11:07 浏览:216
办公室视频剧本脚本 发布:2025-05-15 12:03:51 浏览:491
编译失败什么意思 发布:2025-05-15 11:58:18 浏览:87
lcs脚本官网 发布:2025-05-15 11:56:15 浏览:88
三国志战略版打9级矿什么配置 发布:2025-05-15 11:41:29 浏览:953
安卓加速器怎么关 发布:2025-05-15 11:38:16 浏览:466