React Native 开发 安卓项目构建工具Gradle的配置和使用

gradle基本知识

gradle是React Native和Flutter调试、构建安卓App的打包工具。

gradle可以简单的类比为前端的webpack,webpack将源文件打包成HTML、CSS、JavaScript,而gradle将源文件打包成apk或aar(Android Assemble Bundle)。

React Native项目的android子项目的文件结构如下:

bash 复制代码
.gradle 
app
gradle
        wrapper
                gradle-wrapper.jar
                gradle-wrapper.propertier
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

每个文件的含义如下:

  • .gradle : gradle本地配置
  • app:apk的输出目录
  • gradle/wrapper/gradle-wrapper.propertier: gradle-wrapper的配置文件
  • gradle/wrapper/gradle-wrapper.jar: 与gradle-wrapper.propertier对应
  • build.gradle : gradle项目的配置文件
  • gradle.properties: gradle项目的配置文件
  • gradlew: Linux、MacOS平台构建安卓app时运行的脚本
  • gradlew.bat: Windows平台构建安卓app时运行的脚本
  • settings.gradle: gradle项目的配置文件

gradle和gradle-wrapper的区别

gradle是一个全局、通用的构建工具,而gradle-wrapper是在项目本地目录使用的构建工具。

对于React Native或Flutter而言,并不需要使用gradle,直接运行gradlew.bat脚本即可,gradlew就是gradle-wrapper对应的脚本工具。

添加国内镜像仓库

换源几乎是包管理器的必备操作。有些软件包的仓库在国内是无法访问的,因此需要增加国内的镜像仓库,实际上只需要改两个文件:

  • ./android/gradle/wrapper/gradle-wrapper.properties
  • ./android/build.gradle

下面依次说明怎么修改。

要修改的第一个文件是gradle-wrapper.properties,只需要修改distributionUrl的那一行,把后面的链接改成国内阿里云的,文件是gradle-8.6-all.zip,注意版本。

bash 复制代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.6-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

这里补充说明一下每一行的含义:

  • distributionBase : gradle的根目录。GRADLE_USER_HOME默认为家目录下的.gradle文件夹,保持默认,不要修改。
  • distributionPath :gradle的路径,与上面的根目录组合就是gradle的实际位置。
  • zipStoreBase和zipStorePath : 第三方工具的放置位置。

要修改的第二个文件是build.gradle。这里面的repositories部分定义了gradle应该去哪里下载第三方插件,默认内容是google()和mavenCentral()两个国外仓库。

这两个仓库需要使用挂代理才能使用,但是不能删除,因为有些插件的有些版本国内的镜像仓库并没有,必须要去这里下载。所以保留这两个仓库,在后面添加三个仓库,修改后的内容是:

javascript 复制代码
repositories {
     google()
     mavenCentral()
     maven { url 'https://maven.aliyun.com/repository/google' }
     maven { url 'https://maven.aliyun.com/repository/jcenter' }
     maven { url 'https://maven.aliyun.com/nexus/content/groups/public'}
    }

构建安卓App

首先使用USB或无线的方式连接手机与电脑,然后运行如下命令开始安卓的调试:

javascript 复制代码
npm run android

这会打开Metro程序,这个程序会实时监控源文件的修改,并实时重新编译安卓App。

源代码编写完成后,就可以构建apk了。首先进入android子项目中:

javascript 复制代码
cd android

然后运行如下命令开始打包apk:

javascript 复制代码
.\gradlew.bat assemble

实际上gradlew.bat 还有很多其它子命令,表示不同的任务,使用如下命令查看:

javascript 复制代码
.\gradlew.bat tasks

比较常用的有三个命令:

  • .\gradlew.bat assemble: 打包成apk文件,国内应用商店使用这个文件。
  • .\gradlew.bat bundle: 打包成aar文件,谷歌应用商店使用这个文件。
  • .\gradlew.bat build: 除了打包成安装包,还会进行测试等工作。

打包完成后,在./android/app/build/outputs/apk/release文件夹下,可以找到app-release.apk文件。将这个文件拷贝到手机安装即可。不过,由于app没有签名,会提示不能直接安装,忽略风险继续安装即可。

相关推荐
安卓开发者7 分钟前
驾驭复杂表单:用 RxJava 实现响应式表单处理
android·rxjava
一笑的小酒馆8 分钟前
Android使用Compose实现简单微信朋友圈
android
Moment12 分钟前
Next.js 15.5 带来 Turbopack Beta、Node 中间件稳定与 TypeScript 强化 🚀🚀🚀
前端·javascript·react.js
xiangxiongfly9151 小时前
Android 圆形和圆角矩形总结
android·圆形·圆角·imageview
幻雨様7 小时前
UE5多人MOBA+GAS 45、制作冲刺技能
android·ue5
Jerry说前后端9 小时前
Android 数据可视化开发:从技术选型到性能优化
android·信息可视化·性能优化
Meteors.10 小时前
Android约束布局(ConstraintLayout)常用属性
android
alexhilton10 小时前
玩转Shader之学会如何变形画布
android·kotlin·android jetpack
emojiwoo12 小时前
【前端基础知识系列六】React 项目基本框架及常见文件夹作用总结(图文版)
前端·react.js·前端框架
whysqwhw14 小时前
安卓图片性能优化技巧
android