Mac下命令行下载android源代码并构建apk过程
前提是java 、sdk、ndk 、cmake、gradle 、gradlew都已经安装和配置好。
1、下载源码:
git clone http://git-ma.xxxx.com.cn/xxxx/xxxxx-ANDROID.git
2、改实际项目有用android 的small框架,框架文件夹放在master分支上。要编译的develop 分支没有这个文件夹。需要下载下
git submodule update --init --recursive
3、进入android项目目录
./gradlew cleanLib

./gradlew buildLib
执行这个命令时提示:
What went wrong:
A problem occurred configuring project ':lib.background'.
> java.io.FileNotFoundException: /Users/xxx/AndroidStudioProjects/xxxx-ANDROID/xxxx/local.properties (No such file or directory)
就手动在项目根目录下创建一个local.properties 文件。并在文件中指定sdk 和ndk位置。内容如下:
ndk.dir=/Users/xxxx/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/xxxx/Library/Android/sdk
执行结果如下:

./gradlew cleanBundle 执行结果如下

./gradlew buildBundle

- 执行命令打包 ./gradlew :app:build

查看打包好的apk

整个放在可以放在可执行的shell脚本如下:
git clone http://git-xxx.xxx.xxx.cn/xxxxx/projectname-ANDROID.git;
#进入git下载的文件夹
cd projectname-ANDROID;
#获取么子模块
git submodule update --init --recursive;
#进入项目目录
cd projectname;
#新建一个local.properties 保存自己本地ndk 和sdk文件夹
touch local.properties
echo "ndk.dir=/Users/xxxxxx/workdirectory/env/android-sdk-macosx/ndk-bundle" >> local.properties
echo "sdk.dir=/Users/xxxxxx/workdirectory/env/android-sdk-macosx" >> local.properties
date;
./gradlew cleanLib -q ;
./gradlew buildLib -q ;
./gradlew cleanBundle -q;
./gradlew buildBundle -q;
# -x test -x lint 不进行单元测试
./gradlew :app:build -x test -x lint -q; #唤醒休眠手机
adb shell input keyevent #卸载apk 前提是apk已经安装
uninstall_result=`adb uninstall com.xxx.xxx`
echo "uninstall result: "$uninstall_result;
if [[ $uninstall_result == *_FAILED_* ]]
then
echo "卸载apk不成功"
cp usyfusfjsdf ksfsdkfsdf
else
echo "卸载apk成功"
fi #安装apk
install_result=`adb install ${WORKSPACE}/xxxx-ANDROID/xxxx/app/build/outputs/apk/app-release.apk`
echo "install result: "$install_result;
if [[ $install_result == *_FAILED_* ]]
then
echo "安装apk不成功"
cp usyfusfjsdf ksfsdkfsdf
else
echo "安装apk成功"
fi
Mac下命令行下载android源代码并构建apk过程的更多相关文章
- linux/mac下命令行rm回收站--rmtrash
Linux.mac的命令行下没有回收站功能,很多时候手一抖就把重要文件给 rm -fr * 了,虽然linux下有可能通过lost +found/debugfs找回,但难度也比较大,不能保证一定能够找 ...
- 在Mac OS X中下载Android源代码的一些经验
首先说明.随着最近(2014年6月開始)GFW的升级.这个站点:http://www.android.com/ 已经不能正常訪问了,以下的这些操作均是在我连接VPN的时候进行的. 首先,须要做一些准备 ...
- Mac下命令行tree生成文件树
不像Windows,Mac环境本身是没有tree命令的,但可以后天呐~ 1.下载文件包并将其放在系统目录下(本人存放路径为/Users/) https://homebrew.bintray.com/b ...
- Mac下命令行中用sublime打开指定文件 设置方法
sublime2版本 官网提供的方法:sublime2 官网提供的方法是:ln -s "/Applications/Sublime Text 2.app/Contents/SharedSup ...
- Mac下命令行批量重命名
日常中碰到需要批量修改文件名怎么办?嗯,来终端先 案例:将Users/case目录下所有html文件修改为php文件 步骤: 1.进入目标文件夹 $ cd Users/case 2.执行以下命令 $ ...
- mac下命令行安装node.js及切换不同版本nodejs
摘自: http://www.cnblogs.com/ikuyka/p/5825762.html 前提是你电脑里已经装了node.js然后才能采用以下命令(以下代码最好不要同时运行) sudo n - ...
- Mac 下用 go 开发Android应用环境设置
需要的工具 设置代理 请参考:http://www.cnblogs.com/ghj1976/p/5087049.html Mac 下命令行设置代理: export http_proxy=http:// ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux下十大命令行下载工具
Wget 这是最有名的工具,可用于通过CLI下载.这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个 ...
随机推荐
- Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider(8)
1)动态语言注解(2)@Provider使用思路(3)@SelectProvider小试牛刀(4)@SelectProvider初露锋芒(5)@SelectProvider过关斩将(6)@Insert ...
- javascript将算法复杂度从O(n^2)做到O(n)
compare the difference of two giving array, return results: 1. elements in both array, 2. elements o ...
- 简单的tcp聊天
package com.pers.tcptest; import java.io.IOException; import java.io.InputStream; import java.io.Out ...
- MySql8.0数据库链接报错The driver has not received any packets from the server
1.我使用MySql数据库8.0版本,然后驱动改成了 jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306 ...
- Java多线程之Future与FutureTask
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561154.html 一:Future 在使用实现Callable创建线程时,call()方法是有返回值的. ...
- oracle-sakila-db sakila的Oracle版本
在Sakila——MySQL样例数据库解析 中,学习了sakila for mysql的表结构.并把它作为数据仓库.ODI ETL学习的源数据库.ODI Studio拓扑结构的创建与配置 后来发现OD ...
- 【Linux】文件夹及作用说明
Tips Linux关机注意事项: 远程重启服务前,先停止相关服务 使用安全命令重启shutdown –r now,该命令在重启时会正常保存和终止服务器上正在运行的程序 不建议在本地直接对远程服务器关 ...
- case when then用法
--简单Case函数 CASE sex WHEN ' THEN '男' WHEN ' THEN '女' ELSE '其他' END //案例 select cid as 渠道编号, ' then '小 ...
- Unbound服务的安装与运行管理
一.Unbound服务的安装与运行管理 1.获取Unbound软件包 RHEL7.x自带了Bind和Unbound两种DNS服务包,Unbound是红帽公司推荐使用的DNS服务器.目前,虽然Bind在 ...
- 【TP3.2.*】解决session过期不失效 和 设置不成功问题
// ---------- 更新与 2019/01/23日 -------------// 1.问题:本来我想设置session有效期1800秒即30分钟 失效的,可是实际使用TP3.2.0的时候发现 ...