「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命令的命令
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命令的命令的信息别忘了在本站进行查找喔。
编辑:一起学习网
标签:文件,命令,目录,文件名,应用程序