[编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP
April 18, 2020 6:54 AM - BEAUTIFULZZZZ
.
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
GitHub:https://github.com/nbtool/android_app_linux_tool
但是随着工程越来越复杂,采用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 --list
if [ ! -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 -n com.telink.lt/.ui.AdvDeviceListActivity
}
3 效果展示

- : 本项目的github关注起来https://github.com/nbtool/android_app_linux_tool~
- 大家觉得不错,可以点推荐给更多人~
LINKS
[1].Android Studio 命令行Gradle编译
[[2].BLE_826X_Generic]]#2
[3].21、android studio 疑难杂症
[编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP的更多相关文章
- [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)
目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...
- [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...
- 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境
在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了. 第一步:安装交叉编译工具 a) 安装SDCC sudo apt-get install sdcc b)测试SDC ...
- [编译] 5、在Linux下搭建安卓APP的开发烧写环境(makefile版)—— 在Linux上用命令行+VIM开发安卓APP
星期三, 19. 九月 2018 02:19上午 - BEAUTIFULZZZZ 0)前言 本文不讨论用IDE和文本编辑器开发的优劣,是基于以下两点考虑去尝试用命令行编译安卓APP的: 了解安卓APP ...
- [编译] 9、在Linux下搭建 nordic 最新基于 zephyr 的开发烧写环境
目录 前言 1.概述 2.安装工具 3.获取 nRF Connect SDK 源码 4.安装 Python modules 5.安装 toolchain 6.下载 nRF Command Line T ...
- [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)
星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安装步骤 1) 从GNU Arm Embedded Toolchain官网下载最新的gcc-arm工具链,写文章时 ...
- 在Linux下搭建nRF51822的开发烧写环境(makefile版)
http://www.qingpingshan.com/m/view.php?aid=394836
- Linux下搭建iSCSI共享存储
转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...
- Linux下搭建 Cocos2d-x-2.1.4 编译环境
[tonyfield 2013.09.04 ] 参考 Linux下搭建 Cocos2d-x-2.1.4 编译环境 导入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...
随机推荐
- 【MyBatis笔记】mapper文件的配置以及说明
<!doctype html>[MyBatis笔记]mapper文件的配置以及说明 figure:last-child { margin-bottom: 0.5rem; } #write ...
- Natas18 Writeup(Session登录,暴力破解)
Natas18: 一个登录界面,查看源码,发现没有连接数据库,使用Session登录,且$maxid设定了不大的上限,选择采取爆破. 源码解析: <html> <head> & ...
- Linux下安装Python3.4
PS:如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 1. ...
- 升级Kubernetes 1.18前,你不得不知的9件事
本文来自Rancher Labs 昨天Kubernetes最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能.11项beta版功能以及12项alpha版功能.在本文中,我们将探 ...
- 补充JavaScript
1 JavaScript概述 1.1 ECMAScript和Javascript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准 ...
- 基于arduino、百度云、采用django、redis鱼缸在线监控
大家好,今天我给大家分享一下之前做的一个鱼缸远程监控的案例,希望有人喜欢 首先给大家看一下结构框架,由于我之前买的arduino开发板不带wifi功能,所有是通过pc机转发一下上的百度云,最近我刚购买 ...
- 六、深浅拷贝与while循环
一.深浅拷贝 3.1 浅copy: 浅copy是把原列表第一层的内存地址不加区分完全copy一份给新列表 用法: list1=[ 'egon', 'lxx', [1,2] ] list2=list1. ...
- .NET Core中创建和使用NuGet包
在.NET Core的项目中,如果我们要在项目中引用其它DLL文件,不应该直接在项目引用中添加DLL文件(虽然在.NET Core项目中也可以这么做),建议是去直接下载DLL文件所属的NuGet包.这 ...
- [Java网络安全系列面试题] 说一说TCP和UDP的区别与联系?
TCP TCP是Transfer Control Protocol(传输控制协议)的简称,是一种面向连接的保证可靠传输的协议. 在TCP/IP协议中,IP层主要负责网络主机的定位,数据传输的路由,由I ...
- [vijos1554&bzoj1411]硬币游戏<快速幂>
题目链接:https://vijos.org/p/1554 http://www.lydsy.com/JudgeOnline/problem.php?id=1411 这题真的淫*QAQ... 一看题还 ...