导航:首页 > 操作系统 > 安卓xml怎么编译

安卓xml怎么编译

发布时间:2023-08-30 07:07:12

① xml文件怎么用maven编译

创建项目根文件夹,例如Maven01
在Maven01文件夹中创建“pom.xml”文件
pom.xml文件中的内容
编写java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在Maven01项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹
在java文件夹下创建一个Hello.java文件
在Hello.java文件中编写代码
使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译
使用Maven编译完成之后,在项目根目录下会生成一个target文件夹
打开target文件夹,可以看到里面有一个classes文件夹
classes文件夹存放的就是编译成功后生成的.class文件
使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉
执行完"mvn clean"命令后,target文件夹就会被删除了。

② 自己可以编译安卓源码

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ③ 如何反编译apk文件得到源码和XML文件

    最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
    1.下载工具
    首先,要反编译需要下面这
    4个工具:
    dex2jar:将apk中的classes.dex转化成Jar文件。
    JD-GUI:反编译工具,可以直接查看Jar包的源代码。
    apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
    apktool-install-windows-r05-ibot:辅助windows批处理工具。
    2.解压apk
    直接右键解压apk就行了,这没什么好说的。【解压后会有个dex后缀的文件,下面会用到】
    3.反编译dex文件
    1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
    2)DOS行命令如下:dex2jar.bat
    xx\classes.dex(xx是classes.dex文件所在的路径)。
    将在同目录得到普通jar包:【classes_dex2jar.jar】,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
    4.反编译jar文件
    1)解压压缩文件JD-GUI
    2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,
    即可看到源代码了。
    5.反编译xml文件
    为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来
    具体操作方法:
    1)将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。
    2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
    3)在DOS命令行中输入:apktool
    d
    xx\HelloWord.apk
    HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
    6.后话
    不过,说到底反编译还是反编译,还是不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:
    setContentView(2130903048);
    在真正的源代码中其实是这样的:
    setContentView(R.layout.welcome)

    ④ 加固的apk,如何反编译AndroidManifest.xml

    工具:
    链接: http://pan..com/s/1i4QpEAh 密码:l6oq

    首先配置好Java的环境,在将apk重命名为*.zip,然后解压zip文件,就可获得AndroidManifest.xml文件,此时该文件无法打开,接下来就要用上面的AXMLPrinter2.jar工具。
    命令为:java -jar AXMLPrinter2.jar AndroidManifest.xml > a.xml

    ⑤ 如何反编译apk文件得到源码和XML文件

    最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
    1.下载工具
    首先,要反编译需要下面这
    4个工具:
    dex2jar:将apk中的classes.dex转化成Jar文件。
    JD-GUI:反编译工具,可以直接查看Jar包的源代码。
    apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
    apktool-install-windows-r05-ibot:辅助windows批处理工具。
    2.解压apk
    直接右键解压apk就行了,这没什么好说的。【解压后会有个dex后缀的文件,下面会用到】

    3.反编译dex文件
    1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
    2)DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路径)。
    将在同目录得到普通jar包:【classes_dex2jar.jar】,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。

    4.反编译jar文件
    1)解压压缩文件JD-GUI
    2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,
    即可看到源代码了。

    5.反编译xml文件
    为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来
    具体操作方法:
    1)将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。
    2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
    3)在DOS命令行中输入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。

    6.后话
    不过,说到底反编译还是反编译,还是不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:
    setContentView(2130903048);

    在真正的源代码中其实是这样的:
    setContentView(R.layout.welcome)

    ⑥ 如何单独编译Android源码中的模块

    1.make 模块名称
    需要查看Android.mk文件的LOCAL_PACKAGE_NAME变量。
    2.mmm命令
    用于在源码根目录编译指定模块,参数为模块的相对路径。只能在第一次编译后使用。比如要编译Phone部分源码,需要在终端中执行以下命令:
    $mmm packages/apps/phone
    3.mm命令
    用于在模块根目录编译这个模块。只能在第一次编译后使用。例如要编译Phone部分源码,需要在终端中执行以下命令:
    $cd packages/apps/phone
    $mm
    注:mmm和mm命令必须在执行“.build/envsetup.sh”之后才能使用,并且只编译发生变化的文件。如果要编译模块的所有文件,需要-B选项,例如mm -B。

    ⑦ 如何反编译xml文件

    网上很多发编译apk的例子,方法也很多,我只取最简单的用。
    首先说一下这个xml文件,就是.apk文件改成.zip文件后用解压缩工具解压出来的。比如
    反编译这个xml用到的软甲是A2. AXMLPrinter2

    第一步:把上面提到过的需要发编译的.xml文件和下载下载的AXMLPrinter2.jar这两个文件都拷贝到android-sdk-windows/tools文件夹中。

    第二步:运行cmd,进入tools目录,键入
    java -jar AXMLPrinter2.jar AndroidManifest.xml > main.txt

    用java -jar 命令配合AXMLPrinter2.jar这文件把AndroidManifest.xml编译写入到main.txt文件中
    (说明一下,我的xml是AndroidManifest.xml,如果你拷进去的不是这个,请自己改文件名)

    回车后没有报错的话,就成功了
    打开../android-sdk-windows/tools/目录,找到main.txt,打开看一下

    ⑧ APK文件里面的AndroidManifest.xml文件全是乱码用什么编译器打开

    把AXMLPrinter2.jar下载到桌面,把你提取出乱码的AndroidManifest.xml文件也放在桌面

    你还需要安装好java
    ///////////以下内容在桌面保存为run.bat////////////

    for/f"tokens=2,*"%%iin('regquery""/v"Desktop"')do(
    setdesk=%%j
    )
    java-jarAXMLPrinter2.jar%desk%AndroidManifest.xml>AndroidManifest.txt
    pause

    ////////以上内容在桌面保存为run.bat////////////
    保存后运行run.bat,如果没有任何提示(“按任意键继续”除外),就说明成功解密,在桌面会生成一个AndroidManifest.txt文件,这个.txt文件就是解密后的文件,这样就不乱码了

    AXMLPrinter2.jar这个文件你自己网络下载

    ⑨ Android反编译(三)— 手动编译

    PS: 最近没工作,没工作就没需求,没需求就没什么技术总结的灵感,那就没更新什么。但是两个月不更新了,要是三个月不更新就会出大事,所以这次打算做一件有意思又不难的事。
    之前有发文章写过反编译,今天就来试试反编译之正编译,开玩笑的,就是试试手动编译的过程, 平时我们在项目中编译出包都是使用Gradle直接执行assemble任务就能解决,我打算试试手动模拟整个过程。当然我也是第一次这样搞,所以如果有写得不对的地方,还望指出。

    众所周知,apk实质上就是一个压缩包。复习一下,我们写个最简单的Demo,然后打包,然解压,注意是解压,不是反编译,意义是不同的。

    注意我这个Demo很简单,什么都不引入

    然后我们看看整个出包的过程,随便从网上拿张图

    然后这里我们用Android SDK给我们提供的工具来完成整个流程,工具在sdk文件夹下的build-tools文件夹下,有什么aapt.exe、dx.bat,用的就是这些

    这步应该是整个流程最简单的吧,我感觉,所以从最简单的开始。
    我们先看看生成的dex有什么

    对比项目,我是一开始最基本的项目,什么都没动,所以只有一个MainActivity.clas,所以这里肯定是要先想办法得到BuildConfig.class和R.class。

    输入命令:
    aapt p -f -m -J <输出路径> -S <res路径> -I <android.jar路径> -M <Manifest路径>

    下一步,我们需要BuildConfig.class
    这个BuildConfig.java是由gradle在我们配置好gradle之后自己帮我们生成的,所以我们直接拿来用,然后再javac就得到class文件了

    然后我们再编译我们的MainActivity.java并将它们放到同一个文件夹下, MainActivity因为引用了Android.jar和R文件,所以编译时注意点,我为此被动好好的复习了一遍javac,都是泪

    最后一步,我们用dx工具就能打出dex文件了

    然后执行命令就得到一个Dex文件,看看这个文件里面和上面直接打出的apk中的Dex文件有什么不同:

    看图,我们上一步已经生成.dex了,那么我们需要和compiled Resource 还有 Other Resource 一起生成APK。

    我们先来生成compiled Resource,也就是resources.arsc
    发现之前使用aapt生成R文件的时候没写完整,当时可以加一个-F参数直接生成arsc和Manifest

    导出的abc.zip里面就有resources.arsc和AndroidManifest.xml。
    因为之前写漏了,所以肯定要重新编一次MainActivity.java和Dex

    我们把刚才的dex文件和aapt生成的resources.arsc、AndroidManifest.xml和res放到一个文件夹里面。
    PS:res文件夹也是上面aapt的命令生成的
    然后我们对比这个文件夹和之前apk解压的文件夹

    最后运行

    看来是成功了。

    再说说遇到的还有两个问题,并说下我解决问题的思路
    (1)我把它们都放到一个文件夹之后,我压缩成压缩包,然后改后缀成.apk,然后发现安装不了,我就直接反编译,发现发编译失败,提示包有问题,以我多点玩包的经验,我感觉就是压缩工具出了问题,然后我去下个“好压”(这不是广告啊),然后就能正常反编译了。
    (2)但是还是安装不了,再根据我多年的玩包经验,我感觉是签名问题,然后我随便给这个包上一个签名,就能正常安装得到上图的结果了。

    总体来说,还真挺好玩的,这整个过程,就是翻车了几次。做完之后感觉非常牛逼,为什么这样说,因为我知道这整个过程,我就可以做到,我不经过gradle来打包,我自己写个python脚本来调用aapt和dx来打包也是能做到的。
    当然上面纯属异想天开,因为这是个什么都没有的Demo所以觉得简单,要是一个真实的项目,我感觉肯定要有很多坑,别的先不说,一个项目那么多依赖关系,我这javac要搞死人。
    最后如果有不对的地方,希望有大佬能够指出,毕竟能运行也不能证明完全没问题。然后我使用的build-tools是28的,不敢保证其它版本包括以后版本的玩法都一样。

    阅读全文

    与安卓xml怎么编译相关的资料

    热点内容
    有什么好用的小众app吗 浏览:116
    芋道app源码 浏览:447
    计算机程序员怎么找 浏览:280
    智联发pdf 浏览:236
    c语言编译错误变黑 浏览:72
    手机软件加密了怎么解开 浏览:887
    linux中的ln命令例子 浏览:142
    为什么玩cf第一次进入服务器很慢 浏览:967
    工作单源码 浏览:619
    安卓如何关闭app自动升级 浏览:137
    new文件夹怎么打开 浏览:633
    安卓51如何优化 浏览:177
    活塞式压缩机原理图 浏览:846
    水环式压缩机工作原理 浏览:716
    阿里云服务器安装后怎么使用 浏览:934
    去做APP开户有什么危险没得啊 浏览:697
    8分之1乘58算法 浏览:172
    php提交过滤 浏览:358
    豪斯曼检验stata命令 浏览:771
    云看地是什么APP 浏览:887