我想从命令行设置Android开发环境,遇到以下问题:
wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz
解压完成后,运行
tools/android update sdk --no-ui
但是,它跑起来太慢了
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
结果是在文件夹build-tools中什么都没有,我想要的是apapt和apkbuilder,因为我想从命令行构建apk而没有ant。
默认情况下,命令行中的SDK管理器不包括列表中的构建工具。它们属于“过时”的类别。要查看所有可用的下载,使用
android list sdk --all
然后从命令行获取列表中的一个包,使用:
android update sdk -u -a -t <package no.>
其中-u代表——no-ui, -a代表——all, -t代表——filter。
如果你需要安装多个包,请:
android update sdk -u -a -t 1,2,3,4,..,n
在1、2、…,n为上面list命令列出的包号
构建工具在默认情况下不能自动下载,就像Nate在https://stackoverflow.com/a/19416222/1104031的帖子中说的那样。
但是我写了一个小工具,为你做一切
我在https://stackoverflow.com/a/17863931/1104031的帖子中使用了“期望”工具作为danb。
你只需要android-sdk和python27。
这个脚本将安装所有的构建工具,所有的sdk和自动构建所需的一切:
import subprocess,re,sys
w = subprocess.check_output(["android", "list", "sdk", "--all"])
lines = w.split("\n")
tools = filter(lambda x: "Build-tools" in x, lines)
filters = []
for tool in tools:
m = re.search("^\s+([0-9]+)-", tool)
tool_no = m.group(1)
filters.append(tool_no)
if len(filters) == 0:
raise Exception("Not found build tools")
filters.extend(['extra', 'platform', 'platform-tool', 'tool'])
filter = ",".join(filters)
expect= '''set timeout -1;
spawn android update sdk --no-ui --all --filter %s;
expect {
"Do you accept the license" { exp_send "y\\r" ; exp_continue }
eof
}''' % (filter)
print expect
ret = subprocess.call(["expect", "-c", expect])
sys.exit(ret)
ADB Build-Tools不会自动下载,通过命令android update sdk——no-ui
因此安装build - tool类型(在控制台):
android list sdk --all
记住项目前面列出的数字,并执行以下操作:
android update sdk -u --all --filter <number>
命令应该在/YourFolder/android-sdk-linux/tools中输入
对于远程文件夹(例如ssh打开的服务器)键入:
**./android** list sdk --all
**./android** update sdk -u --all --filter <number>
在终端输入简单的ADB包列表:
android list sdk
安装所有软件包:
android update sdk --no-ui
或带过滤器(逗号为分隔符):
android update sdk --no-ui --filter 3,5,8,14
从developer.android.com下载android SDK(目前windows操作系统的文件大小为149mb)。值得注意的是,android已经删除了sdkmanager GUI,但在位于tools文件夹内的bin文件夹中有一个sdkmanager的命令行版本。
When inside the bin folder, hold down the shift key, right click, then select open command line here.
Shift+right click >> open command line here.
When the command line opens, type sdkmanager click enter.
Then run type sdkmanager (space), double hyphen (--), type list
sdkmanager --list (this lists all the packages in the SDK manager)
Type sdkmanager (space) then package name, press enter.
Eg. sdkmanager platform-tools (press enter)
It will load licence agreement. With options (y/n). Enter y to accept and it will download the package you specified.
如需更多参考,请参考这里的官方文件
我希望这能有所帮助。:)