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的更多相关文章

  1. [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...

  2. [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)

    星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...

  3. 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境

    在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了. 第一步:安装交叉编译工具 a) 安装SDCC sudo apt-get install sdcc b)测试SDC ...

  4. [编译] 5、在Linux下搭建安卓APP的开发烧写环境(makefile版)—— 在Linux上用命令行+VIM开发安卓APP

    星期三, 19. 九月 2018 02:19上午 - BEAUTIFULZZZZ 0)前言 本文不讨论用IDE和文本编辑器开发的优劣,是基于以下两点考虑去尝试用命令行编译安卓APP的: 了解安卓APP ...

  5. [编译] 9、在Linux下搭建 nordic 最新基于 zephyr 的开发烧写环境

    目录 前言 1.概述 2.安装工具 3.获取 nRF Connect SDK 源码 4.安装 Python modules 5.安装 toolchain 6.下载 nRF Command Line T ...

  6. [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)

    星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安装步骤 1) 从GNU Arm Embedded Toolchain官网下载最新的gcc-arm工具链,写文章时 ...

  7. 在Linux下搭建nRF51822的开发烧写环境(makefile版)

    http://www.qingpingshan.com/m/view.php?aid=394836

  8. Linux下搭建iSCSI共享存储

    转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...

  9. Linux下搭建 Cocos2d-x-2.1.4 编译环境

    [tonyfield 2013.09.04 ] 参考 Linux下搭建 Cocos2d-x-2.1.4 编译环境 导入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...

随机推荐

  1. Python文本文件读写操作时的字符编码问题

    说明:文本文件的字符编码问题只存在t模式中,如:open('a.txt', mode='rt') 编码(encode): 我们输入的任何字符想要以文件(如.txt)的形式保存在计算机的硬盘上, 必须先 ...

  2. 13. Java 获取指定字符串出现的次数

    方式一 /** * @param args */ public static void main(String[] args) { String srcText = "Hello World ...

  3. 暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) https://pintia.cn/problem-sets/994805046380707840/problems ...

  4. CodeMixer工具,完美替代ChaosTool,iOS添加垃圾代码工具,代码混淆工具,代码生成器,史上最好用的垃圾代码添加工具,自己开发的小工具

    新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 扣扣交流群:811715780 进入 Proje ...

  5. Mol Cell Proteomics. | 用于鉴定新型融合转录本及其在癌细胞中的潜在翻译产物的多功能蛋白质组基因组学工具FusionPro

    期刊:Molecular & Cellular Proteomics 发表时间:June 17, 2019 DOI:10.1074/mcp.RA119.001456 分享人:任哲 内容与观点: ...

  6. scapy学习笔记

    1.ACK Scan >>>ans,unans=sr(IP(dst="www.baidu.com")/TCP(dport=[80,666],flags=" ...

  7. [Unity] Unity 2019.1.14f 在Terrain中使用Paint Texture的方法

    1.点击Terrain中的Paint Texture按钮2.将按钮下面的下拉菜单选择paint texture3.点击Edit Terrain Layers按钮T4.点击弹出菜单的Create Lay ...

  8. Manjaro更新后 搜狗拼音输入法突然无法正常使用

    之前Manjaro已经用了很久了,很多该配置的都已经配置好了,但是搜狗拼音在系统更新后突然无法使用 1检查 如下依赖 2.检查配置文件 3.发现一切配置没问题,此时输入 sogou-qimpanel ...

  9. 你能在泰坦尼克号上活下来吗?Kaggle的经典挑战

    Kaggle Kaggle是一个数据科学家共享数据.交换思想和比赛的平台.人们通常认为Kaggle不适合初学者,或者它学习路线较为坎坷. 没有错.它们确实给那些像你我一样刚刚起步的人带来了挑战.作为一 ...

  10. WePY框架 input,checkbox-group,radio-group等change 一般处理方法

    布局搞定了,接下来就是数据处理方面了 form表单中常用标签,绑定change方法: 方法的具体实现 根据打印出来e的结果可以看到,e指代当前标签对象,包含属性方法等 从detail中可以获取多选框选 ...