「aapt Linux命令解析」:轻松掌握Android应用打包工具! (aapt linux使用命令)

在安卓开发过程中,应用打包是必不可少的一部分。无论是开发者还是测试人员,都需要掌握应用打包的方法,以便在应用发布的时候能够正确地进行操作。而其中一个重要的工具就是aapt命令,一个在Linux系统下的android应用打包工具。本文将介绍aapt命令的详细用法和作用,以及如何使用aapt命令来打包应用程序。

一、aapt命令的介绍

aapt命令是Android应用打包工具中的一个命令,全称为Android Asset Packaging Tool,即安卓资源打包工具。它可以解决应用程序的资源文件、类包、应用图标等打包时需要的工作,将多个文件打包成一个可执行的APK文件,使得安卓开发者可以更方便地打包和发布自己的应用程序。

aapt命令在Linux系统下可以使用,同时也支持Windows系统和Mac系统。但是,本文主要介绍aapt在Linux系统下的使用方法。

二、aapt命令的作用

aapt命令可以完成以下几项功能:

1. 打包资源:将应用的资源文件打包成一个整体,方便应用发布和传输。

2. 解析已有的APK文件:aapt可以解析已有的APK文件,并从中提取出资源文件、应用图标等信息。

3. 生成R.java文件:在应用开发过程中,aapt命令可以生成R.java文件,此文件用来存放应用代码中的资源ID,方便应用程序的资源文件与代码文件关联。

4. 生成APK文件:aapt命令可以将应用程序的资源文件、类包等打包成APK文件,以便上传到Google Play等应用市场。

三、aapt命令的详细用法

下面我们来介绍aapt命令的详细使用方法。

1. 打印应用程序信息

执行以下命令可以打印应用程序的信息:

aapt dump badging

例如:

aapt dump badging HelloWorld.apk

输出如下:

package: name=’com.example.myapplication’ versionCode=’1′ versionName=’1.0′ platformBuildVersionName=’7.1.1 NMF26F’

uses-permission: name=’android.permission.INTERNET’

application-label:’My Application’

application-icon-120:’res/drawable-ldpi-v4/ic_launcher.png’

application-icon-160:’res/drawable-mdpi-v4/ic_launcher.png’

application-icon-240:’res/drawable-hdpi-v4/ic_launcher.png’

application-icon-320:’res/drawable-xhdpi-v4/ic_launcher.png’

application: label=’My Application’ icon=’res/drawable-mdpi-v4/ic_launcher.png’

2. 打印应用程序的资源

执行以下命令可以打印应用程序的资源:

aapt list

例如:

aapt list HelloWorld.apk

输出如下:

res/drawable-mdpi-v4/ic_launcher.png

res/drawable-hdpi-v4/ic_launcher.png

res/drawable-xhdpi-v4/ic_launcher.png

res/drawable-ldpi-v4/ic_launcher.png

res/layout/activity_mn.xml

res/menu/mn.xml

res/values/strings.xml

res/drawable-mdpi-v4/bg_mn_activity.xml

res/layout/mn.xml

res/xml/preferences.xml

3. 打印应用程序的xml文件

执行以下命令可以打印应用程序的xml文件:

aapt dump xmltree

例如:

aapt dump xmltree HelloWorld.apk res/layout/activity_mn.xml

将输出activity_mn.xml文件内容。

4. 生成R.java文件

执行以下命令可以生成R.java文件:

aapt package -f -m -J -S -I

例如:

aapt package -f -m -J gen -S res -I $ANDROID_HOME/platforms/android-27/android.jar

其中,-f表示强制更新,-m表示按照manifest文件进行处理,-J表示输出目录,-S表示资源目录,-I表示android.jar路径。

5. 打包APK文件

执行以下命令可以打包APK文件:

aapt package -f -m -F -M -S -I

例如:

aapt package -f -m -F MyApplication.apk -M AndroidManifest.xml -S res -I $ANDROID_HOME/platforms/android-27/android.jar

其中,-f表示强制更新,-m表示按照manifest文件进行处理,-F表示输出APK文件名,-M表示AndroidManifest.xml的路径,-S表示资源文件目录,-I表示android.jar的路径。

四、结语

相关问题拓展阅读:

linux命令的命令

tar与gzip

tar命令

tar 文件与目录….

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打薯轮包进新建的文件中!

–exclude FILE:在压缩的过程中,不要将 FILE 打包!

#tar -cvf

查看包文件的内容

#tar -tf 文件名.tar

向已有的包中添加新文件

#tar -rvf

释放包文件#tar -xvf 文件名.tar

gz压缩文件#gzip 文件名

解压缩文件

#gzip -d 文件名.gz 或#gunzip 文件名.gz

创建压缩包

#tar -zcvf

查看压缩包中的内容

#tar -ztf 文件名.tar.gz

释放压缩包

#tar -zxvf 文件名.tar.gz

mount,umount

mount是Linux下的一个命令,它可以将分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下,从而将分区和/mnt这个目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。目前mount已经不仅仅局限于Linux了,在Windows系统下的应用也越来越广了,多用在虚拟光驱类软件上,比如Clone CD,Daemon tool,WinMount等。

注意事项

1、必须将光盘、U盘等放入驱动器在实施挂载操作

2、不能在挂载目录下实施挂载操作,至少在上一级

3、不能在同一目录下挂载两个以上的文件系统

4、Linux预留挂载目录为/mnt

5、不能在挂载目录下实施卸载操作

6、挂载目录必须事先存在

挂载光盘

#mount -t iso9660 /dev/cdrom /mnt/cdrom

卸载光盘

#umount /mnt/cdrom或#umount /dev/cdrom或#cd;eject

挂载U盘

#mount /dev/sdb1 /mnt/u

挂载iso镜像

#mount -t iso9660 -o loop iso镜像文件/mnt/cdrom

基础命令

* LINUX图形界面和命令行界面的切换   进入Ubuntu桌面环境后,可以使用键盘上的“Ctrl+Alt+F1~F6“组合键来切换不同的tty界面,Linux默认提供了6个命令行界面(F1-F6),比如”Ctrl+Alt+F1″就是切换到tty1:  1 /*最上面显示的是Ubuntu的版本计算机名称和tty号*/  2 Ubuntu 12.04.1 LTS qingsword tty1  4 /*输入用户名和密码即可登录tty1*/  5 qingsword login: root  6 Password:  在命令行模式下,想要切换回图形界面可以使用组合键”Ctrl+Alt+F7“。另外,如果不携绝是从图形界面切换到tty模式,而是系统启动时候直接进入的命数隐信令行模式,在登陆后可以使用”startx”来启动图形界面。  PS:在图形界面下使用”Ctrl+Alt+T“可以快速启动Linux的命令行终端。

* 列出目录中的文件(LS)  在Linux命令行终端中使用的最多的命令就是这个ls,它可以帮助我们列出当前目录下都有哪些文件,下面是一些实例:  1 /*  2 * 使用pwd,查看当前是在哪个目录中,  3 * 显示为“/home/qingsword”,这就是当前命令行所在的目录。  4 */  5 $ pwd  6 /home/qingsword  8 /*切换到根目录*/  9 $ cd /  11 /*验证一下,确实在根目录下了*/  12 $ pwd  13 /  15 /*查看根目录下面都有哪些文件和文件夹*/  16 $ ls  17 bin dev home lost+found mnt proc in srv tmp var  18 boot etc lib media opt root selinux sys usr  20 /*可以使用两个ll详细输出,这个命令和ls -l效果相同*/  21 $ ll  22 totaldr-xr-xr-x. 2 root root 4096 Aug 9 01:21 bin  24 dr-xr-xr-x. 5 root root 1024 Aug 8 23:54 boot  25 drwxr-xr-x. 18 root root 3820 Aug 8 17:41 dev  26 drwxr-xr-x. 88 root root 4096 Dec 24 10:39 etc  27 …../*省略部分输出*/…..  29 /*详细输出,并且显示隐藏的文件和文件夹,或ls -al*/  30 $ ll -a  31 totaldr-xr-xr-x. 21 root root 4096 Aug 8 17:39 .  33 dr-xr-xr-x. 21 root root 4096 Aug 8 17:39 ..  34 -rw-r–r–. 1 root root 0 Aug 8 17:39 .autofsck  35 dr-xr-xr-x. 2 root root 4096 Aug 9 01:21 bin  36 …../*省略部分输出*/…..  上面为ls常见的用法,下面是一些其他用法:  1 /*  2 * 使用递归模式,显示目录以及下级子目录,  3 * 后面的more是当输出超出终端显示范围时,显示一个more,  4 * 按任意键可以继续显示下面的内容。  5 */  6 $ ls -R | more  8 /*按时间先后显示*/  9 $ ls -t  11 /*横排输出,中间用逗号分隔*/  12 $ ls -m  14 /*按大小排列,先大后小*/  15 $ ls -S  除此之外ls会显示不同颜色,下面是这些颜色的含义:  蓝色—目录  绿色—可执行文件  红色—压缩文件  浅蓝色—链接文件  粉红色—图片文件  黄色—设备文件  灰色—其他文件  可以切换到/dev目录下用ls查看一下,会看到大部分为设备文件。  * 目录切换(CD)  使用cd(Change Directory)命令可以在不同目录之间切换,下面是一些实例:  1 /*当前目录是根目录*/  2 $ pwd  3 /  5 /*使用cd切换到/dev这个目录*/  6 $ cd /dev$ pwd  9 /dev  11 /*查看一下当前目录下面的文件*/  12 $ ls  14 /*这条命令可以用来跳到前一个工作目录,即根目录*/  15 $ cd/  18 /*跳到当前用户的家目录*/  19 $ cd ~  20 $ pwd  21 /home/qingsword  23 /*返回上一层目录*/  24 $ cd ..  25 $ pwd  26 /home  * 创建、移动、复制、删除文件的操作  可以使用下面的命令来创建一个目录,或者嵌套的目录:  1 /*我在当前用户的家目录中,首先创建一个单层目录*/  2 $ mkdir qing  3 $ ls  4 qing  6 /*试着创建一个嵌套的目录,提示错误*/  7 $ mkdir top/sub/sub2  8 mkdir: cannot create directory `top/sub/sub2′: No such file or directory  10 /*添加-p参数才能创建多层的嵌套目录*/  11 $ mkdir -p top/sub/sub2  12 $ ls  13 qing top  15 /*  16 * 使用递归显示当前目录下面文件,  17 * “.”代表当前目录,下面表示这个目录下面的子目录和文件。  18 */  19 $ ls -R  20 .:  21 qing top  23 /*”qing”这个目录下面是空的,没有其他文件和文件夹*/  24 ./qing:  26 /*”top”目录下还有个子目录”sub”*/  27 ./top:  28 sub  30 /*sub目录下还有个sub2*/  31 ./top/sub:  32 sub2  34 /*sub2下面是空的*/  35 ./top/sub/sub2:  删除目录或者文件:  1 /*强制删除刚才创建的top目录,”rm -rf”后面可以接任何目录或者文件*/  2 $ rm -rf top  创建文本文件:  1 /*使用touch命令可以创建一个空文本文件*/  2 $ touch testfile  4 /*使用echo命令将hello这几个字符写入这个文件中*/  5 $ echo hello>>testfile  7 /*使用more命令显示这个文件中的内容*/  8 $ more testfile  9 hello  11 /*追加一行,再次显示*/  12 $ echo My name is QingSword>>testfile  13 $ more testfile  14 hello  15 My name is QingSword  复制文件或文件夹:  1 /*首先创建两个文件夹*/  2 $ mkdir dir1  3 $ mkdir dir2  4 $ ls  5 dir1 dir2 qing testfile  7 /*将testfile这个文本文件复制到dir2目录中*/  8 $ cp testfile dir2  9 $ ls dir2  10 testfile  12 /*将dir2目录复制到dir1目录中,复制非空目录要添加参数-r*/  13 $ cp -r dir2 dir1  14 $ ls -R dir1  15 dir1:  16 dir2  18 dir1/dir2:  19 testfile  21 /*  22 * 复制多个目标到一个文件夹中,  23 * 将dir1和dir2这两个文件夹以及testfile这个文本文件,复制到后面的qing文件夹中。  24 */  25 $ cp -r dir1 dir2 testfile qing  移动目录或文件(剪切):  1 /*mv可以操作目录和文件,同样可以一次性操作多个目标*/  2 $ mv dir1 qing  3 $ ls  4 dir2 qing testfile  6 $ mv testfile dir2 qing  7 $ ls  8 qing  9 $  * 重启和关机  使用下面的命令重启和关机(这个命令必须使用root用户才能执行):  1 /*首先切换到root权限*/  2 $ su  3 Password:  5 /*一分钟后关机*/  6 # shutdown -h 1  8 /*如果是定时关机,可以打开另外一个终端,使用下面这个命令取消关机*/  9 # shutdown -c  11 /*马上关机*/  12 # shutdown -h now  14 /*下面这两条命令也是马上关机*/  15 # init# poweroff  18 /*下面这两条命令都能马上重启*/  19 # reboot  20 # init 6

uniq

–去除重复行

下面的示例演示如何grep的唯一相关的交易,削减不必要的信息,并获得计数。

jfields$ cat order.out.log | grep \(Kindle\|Hardcover\) | cut -d, -f3 | sort | uniq -c

1 Joy of Clojure

2 Patterns of Enterprise Architecture

jfields$ cat order.out.log | grep \(Kindle\|Hardcover\) | cut -d, -f3 | sort | uniq

Joy of Clojure

Patterns of Enterprise Architecture

命令ls

ls

这个命令就相当于dos下的dir命令一样,这也是Linux控制台命令中最为重要几个命令之一。Linux上的文件以“.”开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。

ls -l(这个参数是字母L的小写,不是数字1)【直接输入ll 等价于 ls -l的效果】

这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的):

位置

文件属性文件数 拥有者 所属者 group 文件大小 建档日期 文件名

drwxGuest users 1024 Nov 21 21:05 Mail

-rwx–x–x 1 root rootNov 7 22:41 tar*

-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*

lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip

-rwxr-xr-x 1 root binNov 29 7:43 zsh*

-rwsr-x— 1 root bin 9853 Aug 15 5:46 su*

下面,我为大家解释一下这些显示内容的意义。

之一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。之一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx——;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):

rwx(Owner)r-x(Group)r-x(Other)

这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。

第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是空目录的话,那它的数目就是2,非空目录等于该目录中的目录个数加上2了。

第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。

第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。

第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb来显示一个文件的大小单位,不过一般我们还是以byte为主。

第六个栏位,表示创建日期。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。

第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。

ls –F(注意,是大写的F)

使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。

cd

cd

aapt linux使用命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于aapt linux使用命令,「aapt Linux命令解析」:轻松掌握Android应用打包工具!,linux命令的命令的信息别忘了在本站进行查找喔。


数据运维技术 » 「aapt Linux命令解析」:轻松掌握Android应用打包工具! (aapt linux使用命令)