Android编译打包的过程,flutter安装

编译打包的整体流程

Android编译打包的过程,flutter安装

aapt

(Android Asset Packaging Tool)编译和打包资源的工具

  1. 将资源文件编译成二进制文件

使用方法

  1. F:\AndroidStudio\sdk\build-tools\30.0.2添加到path环境变量
  2. 下载openhub的apk,

修改apk文件

  1. (aapt l)执行aapt list -v -a base.apk打印和apk相关的所有详细信息

  2. -a:会详细输出所有目录的内容

  3. -v:会以table的形式输出目录,

  4. table的表目有:Length、Method(压缩形式,deflate(同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法)Stored()直接存储,压缩率为0%)、Size、Ratio、Date、Time、CRC-32、Name。

Android编译打包的过程,flutter安装

  1. aapt r base.apk AndroidManifest.xml, 这个就是将apk中的AndroidManifest移除掉

Android编译打包的过程,flutter安装

  1. aapt a <*.apk> <要添加的文件路径>, 这个就是将文件添加到打包好的apk文件中

其中.class为字节码的形式,用Intellj可以直接反编译打开,看到其中的内容,发现相比于.java文件,已经做了一定的优化 Android编译打包的过程,flutter安装

用于生成apk

  1. 编译:aapt可以用于编译xml文件和图片文件

aapt2 compile -o extrahub/app/src/main/res/values/strings.xml

  1. 链接:合并编译阶段生成的文件,然后将其打包成一个apk文件。此外,在此阶段可以生成其他辅助文件,如R.java、ProGuard。但此时链接生成的apk文件并不全。

aapt2 link -o output.apk -I /Users/nxiangbo/Library/Android/sdk/platforms/android-28/android.jar myBuild/values_strings.arsc.flat myBuild/mipmap-xhdpi_ic_launcher.png.flat --manifest app/src/main/AndroidManifest.xml -v

  1. Dump:打印通过link命令产生的APK文件的资源和配置文件

aapt2 dump filename.apk [options]

apk文件分析 ``` Android编译打包的过程,flutter安装 打开其中的文件全是火星文,之前一直遇到这种情况,这次深层次的百度了下,发现了不同的乱码其实也有规律可循。然而按照下述方法在FileEncoding里面转换,发现仍旧乱码,后来才得知AndroidManifest.xml已被编译成二进制文件,ps:下图为正常文件可能修复的方法:(与本文无关) Android编译打包的过程,flutter安装 可以看到asset资源没有被改变 ! (upload-images.jianshu.io/upload_imag…)

! (upload-images.jianshu.io/upload_imag…) res中的xml文件也被编译成了二进制,名字也发生了改变(混淆),但其中的png内容都是可以直接打开的。 ! (upload-images.jianshu.io/upload_imag…)

XML的解析方法

文末

初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。

而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。

而现在随着跨平台开发,混合式开发,前端开发之类的热门,Android开发者需要学习和掌握的技术也在不断的增加。

通过和一些行业里的朋友交流讨论,以及参考现在大厂面试的要求。我们花了差不多一个月时间整理出了这份Android高级工程师需要掌握的所有知识体系。你可以看下掌握了多少。

混合式开发,微信小程序。都是得学会并且熟练的

Android编译打包的过程,flutter安装

这些是Android相关技术的内核,还有Java进阶

Android编译打包的过程,flutter安装

高级进阶必备的一些技术。像移动开发架构项目实战等

Android编译打包的过程,flutter安装

Android前沿技术;包括了组件化,热升级和热修复,以及各种架构跟框架的详细技术体系

Android编译打包的过程,flutter安装

以上即是我们整理的Android高级工程师需要掌握的技术体系了。可能很多朋友觉得很多技术自己都会了,只是一些新的技术不清楚而已。应该没什么太大的问题。

而这恰恰是问题所在!为什么别人高级工程师能年限突破30万,而你只有十几万呢?

就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?

我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。

喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!

以上系统大纲里包含的所有技术资料,我这里都有的。可以免费分享给有需要的朋友!

。那么我做的这些就都有了意义。

喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!

以上系统大纲里包含的所有技术资料,我这里都有的。可以免费分享给有需要的朋友!

资料领取方式:点击我的GitHub

上一篇:Tensorflow不同版本要求与CUDA及CUDNN版本对应关系


下一篇:Android面试官感悟:年后跳槽季,这6大技巧教你在面试中大获成功挤入一线互联网大厂