Topwo博客
首页
博客
项目
Android
缓存ndk编译生成文件的方法
Android
2021-11-25
ndkBuildHelper.gradle ```groovy import java.security.MessageDigest; println "开始配置${buildscript.sourceFile.getName()}" // 计算文件md5 def calcFileMD5(File file) { MessageDigest digest = MessageDigest.getInstance("MD5"); file.eachByte 4096, {bytes, size ->
阅读原文>>
Android打包流程Gradle Plugin 主要 Task 分析
Android
2021-11-25
## Android 打包流程 官方流程图:  ### 1.编译器将您的源代码转换成 DEX(Dalvik Executable) 文件(其中包括 Android 设备上运行的字节码),将所有其他内容转换成已编译资源。 ### 2.APK 打包器将 DEX 文件和已编译资源合并成单个 APK。 不过,必须先签署 APK,才能将应用安装并部署到 Android 设备上。 ### 3.APK 打包器使用调试或发布密钥库签署您的 APK:
阅读原文>>
如何将自定义task在gradle系统task运行前后执行
Android
2021-11-25
在使用gradle构建android应用的过程中,build tools提供的标准gradle task有时没法满足自己的要求(比如上传、自动构建),或者有些问题需要一些自定义task才可以解决(比如使用自定义task动态修改一些文件),这个时候就需要自定义task并结合标准task一起在构建版本的过程中达到自己的目的,那么如何让自己写的task能放在指定标准task后运行呢?(或者说hack) 以我最近解决的问题为例: 因为公司的产品使用了百川的jar包和so文件,但在使用build tools2.2.0的过程中,发现要打包的so文件被构建系统修改了(官方bug,询问无果,暂无解),导致了阿里云推送无法正常工作,于是我编写了一个task,在即将打包时,把正常的so文件替换掉损坏的so文件。 实现如下: ```Groovy //开始--》移动正常的so文件到打包目录中 task moveLibToTrip1(type: Copy) {
阅读原文>>
从Gradle生命周期到自定义Task挂接到Build构建流程全解
Android
2021-11-24
我们知道Gradle构建工具非常的灵活,它提供了一系列的Api让我们有能力去修改或定制项目的构建过程,在项目的编译过程中,插入我们自己的 Task 并执行相关的操作,如:多渠道打包,ASM代码织入和资源的检测等。 要想实现这些功能,首先就需要明白Gradle的构建流程,知道Gradle在每个阶段都做了什么,加上自己需要在哪个阶段做什么事件,就可以通过Gradle提供的Api,插入我们想要执行的代码。因此理解Gradle的生命周期和Hook点,有助于我们梳理、扩展项目的构建流程。 Gradle的构建过程有着固定的生命周期,理解Gradle的生命周期和Hook点,有助于帮你梳理、扩展项目的构建流程。 ## 一、Gradle 构建生命周期 Gradle的构建过程有着固定的生命周期,分别是: 1. 初始化阶段
阅读原文>>
Gradle计算文件md5和Sha1
Android
2021-11-23
``` import java.security.MessageDigest; apply plugin: 'com.android.library' // 计算文件SHA-1 def calcFileSha1(File file) { MessageDigest md = MessageDigest.getInstance("SHA-1"); file.eachByte 4096, {bytes, size ->
阅读原文>>
Gradle中常用的路径环境变量
Android
2021-11-18
## rootDir > The root directory of this project. The root directory is the project directory of the root project. ## projectDir > The directory containing the project build file. ## buildDir > The build directory of this project. The build directory is the directory which all artifacts are generated into. The default value for the build directory is projectDir/build 对于Gradle而言,每个project下,都一定会有一个build.gradle,以下是在每个build.gradle中打印的值。
阅读原文>>
com.android.tools.build:gradle升级注意事项
Android
2021-11-12
## 1. com.android.tools.build:gradle:4.0.0 对应gradle-6.1.1-bin.zip。 ## 2. android.mk中 LOCAL_MODULE := cocos2djs_share,改为LOCAL_MODULE := cocos2djs。 ## 3. app/build.gradle中android节点下添加: ``` //指定jdk版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
阅读原文>>
解决升级gradle-5.1.1后apt注解解释器不执行的问题
Android
2021-11-12
如题所示,在gradle-4.10.1时编写的注解库,由于要使用kotlin混编,所以必须升级gradle,当升级到在gradle-5.6.4后,突然发现apt的注解器一个也不执行了。   经过一番挣扎和疑惑,最终确定解决方案:  > 就是auto-service不仅要implementation,还需要annotationProcessor ``` implementation 'com.google.auto.service:auto-service:1.0-rc6'
阅读原文>>
Exception in thread main org.jf.dexlib2.dexbacked.DexBackedDexFileNotADexFile
Android
2021-11-02
## 使用apktool反编译apk时报错 ```shell Exception in thread "main" org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile : Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd ``` ### 提示很明显,就是非法Dex,这是因为apk里有加密过后的dex文件,比如有些apk的assets目录下有加密后的Dex文件,添加–only-main-classes参数即可 ```shell
阅读原文>>
gradlew常见命令
Android
2021-09-27
### 参考文档 1).gradlew常见命令 [https://www.jianshu.com/p/584684c08948](https://www.jianshu.com/p/584684c08948)
阅读原文>>
首页
上一页
11
下一页
尾页
文章推荐
缓存ndk编译生成文件的方法
2021-11-25
Android打包流程Gradle Plugin 主要 Task 分析
2021-11-25
如何将自定义task在gradle系统task运行前后执行
2021-11-25
从Gradle生命周期到自定义Task挂接到Build构建流程全解
2021-11-24
Gradle计算文件md5和Sha1
2021-11-23