少年乘勇气,百战过乌孙。这篇文章主要讲述[编译] 7在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP相关的知识,希望能为你提供帮助。
April 18, 2020 6:54 AM - BEAUTIFULZZZZ
目录
- 0 前言
- 1 gradle 安装配置
- 1.1 卸载系统默认装的gradle
- 1.2 下载对应版本的二进制文件
- 1.3 配置gradle:
- 1.4 检查配置
- 1.5 gradle 命令行操作
- 2 全自动脚本编写
- 2.1 自动构建安卓开发环境
- 2.2 编译、运行、清除
- 3 效果展示
- LINKS
.
0 前言
在上上篇《[编译] 5、在Linux下搭建安卓APP的开发烧写环境(makefile版)—— 在Linux上用命令行+VIM开发安卓APP》中我写了一个基于VIM(记事本)开发安卓APP的介绍,并且用类似的方法开源了很多小DEMO:
- [01] Helloandroid: hello world demo
- [02] BluetoorhScan: bluetooth scan + surface(canvas) + handler + bundle
- [03] FlyGame: surface(canvas) + fly game demo
- [04] ListView: ListView DIY demo
- [05] GridView: GridView DIY demo
- [06] TuyaMeshTest: ble scan(fast scan) + textview
- [07] SmartStepCounter: bluetooth scan connect read + line chart
- [08] SmartFan: bluetooth scan connect write
但是随着工程越来越复杂,采用java、aapt去操作使全自动run.sh脚本越来越难写(特别是有些lib库很难找准,有些lib除了库之外还有资源文件,就更复杂了),因此,这里引入一个更先进的工具:gradle。
本文主要介绍gradle的安装、命令行的用法、给出一个基于gradle的全自动脚本run.sh,以及一个小DEMO(这里的全自动是:全自动构建安卓开发环境,全自动编译安装运行到设备)
1 gradle 安装配置
1.1 卸载系统默认装的gradle
sudo pacman -R gradle
.
1.2 下载对应版本的二进制文件gradle所有版本的下载地址:https://gradle.org/releases/
?Downloads wget https://downloads.gradle-dn.com/distributions/gradle-2.14.1-bin.zip
?Downloads unzip gradle-2.14.1-bin.zip
?Downloads cd gradle-2.14.1
?gradle-2.14.1 pwd
/home/btfz/Downloads/gradle-2.14.1
.
1.3 配置gradle:注:看文件夹下的getting-started.html文件
export GRADLE_HOME=/home/btfz/Downloads/gradle-2.14.1
export PATH=$PATH:$GRADLE_HOME/bin
.
1.4 检查配置在工程根目录的 SDK Location 配置文件
local.properties
中:将
sdk.dir=D\\:\\\\develop\\\\AndroidSDK
改为自己系统正确的样子:sdk.dir=/home/btfz/Android/Sdk
在工程根目录的 Project 配置文件
build.gradle
中:(暂不需要修改)在工程根目录向里进一层的目录的 Module 配置文件
build.gradle
中:将诸如SDK和编译工具的版本写成对应的版本:
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
对应关系如下:
文章图片
.
1.5 gradle 命令行操作
gradle -v
查看当前gradle版本gradle clean
将会去下载gradle的一些依赖包gradle build
编译生成apk注:有时候直接用build打包会报错,因为要配置一些打包相关的东西,如果调试用,可以先用:
gradle assembleDebug
编译并打Debug包,不要用gradle assembleRelease
编译并打Release的包(后续会写为什么用build和打release不行)。2 全自动脚本编写
2.1 自动构建安卓开发环境判断是否有android SDK,如果没有,则下载一个android SDK;
下载好android SDK后,可以利用其中的SDKMANAGER工具,安装platforms和build-tools(这两个有很多个版本,找到适合自己的);
判断对应版本的gradle是否存在,如果不存在,则从远端下载对应版本;
function tool(){
#export JAVA_OPTS=\'-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee\'if [ ! -d $ANDROID_SDK_PATH ];
then
#download tool
echo ">
download tool...."
wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
mkdir -p $ANDROID_SDK_PATH
unzip sdk-tools-linux-3859397.zip -d $ANDROID_SDK_PATH
rm -rf sdk-tools-linux-3859397.zip
sudo chmod 777 -R $ANDROID_SDK_PATH
fi#install sdk build-tools platform
echo ">
install sdk build-tools platform...."
echo $SDKMANAGER
$SDKMANAGER "platform-tools" "platforms;
android-$ANDROID_PLATFORM_VERSION"
$SDKMANAGER "platform-tools" "build-tools;
$ANDROID_BUILD_TOOLS_VERSION"
$SDKMANAGER --listif [ ! -d $GRADLE_PATH ];
then
#download gredle
echo ">
download gredle..."
wget https://downloads.gradle-dn.com/distributions/gradle-$GRADLE_VERSION-bin.zip
unzip gradle-$GRADLE_VERSION-bin.zip -d $TOOL_PATH
rm -rf gradle-$GRADLE_VERSION-bin.zip
fi
}
.
2.2 编译、运行、清除借助于gradle,实现编译、清除比较方便,写入设备还是用adb:
function build(){
export GRADLE_HOME=$GRADLE_PATH
export PATH=$PATH:$GRADLE_HOME/bin
gradle clean
gradle assembleDebug
}function clean(){
echo "Cleaning..."
rm -rf build
rm -rf $PROJECT_ROOT/example/$PROJECT_NAME/$MODULE_NAME/build
}function program(){
echo "Launching..."
adb install -r $APK_PATH/*.apk
adb shell am start -ncom.telink.lt/.ui.AdvDeviceListActivity
}
3 效果展示
文章图片
- : 本项目的github关注起来https://github.com/nbtool/android_app_linux_tool~
- 大家觉得不错,可以点推荐给更多人~
【[编译] 7在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP】[1].Android Studio 命令行Gradle编译
[[2].BLE_826X_Generic]]#2
[3].21、android studio 疑难杂症
推荐阅读
- pandas中groupby,apply,lambda函数使用
- MybatisPlus使用Wrapper实现查询功能
- 用网页计数器来说明application和session
- Mpvue中使用Vant Weapp组件库
- [PowerShell]win10 卸载apps
- 2020 Android 大厂面试(之)插件化模块化组件化热修复增量更新Gradle
- Mapper 编写有哪几种方式()
- ApplicationConsul安装及运行
- Spring的applicationContext默认使用无参构造创建对象