首页 > 其他分享 >Android 4.0 SDK的离线方式安装

Android 4.0 SDK的离线方式安装

时间:2023-07-04 19:35:38浏览次数:51  
标签:http 4.0 repository 平台 离线 Android android SDK


 昨天看新闻得知新版本的android系统发布了,android 4.0 是人们期盼多时的版本了。作为一个IT技术人员,迫不及待地就奔向了http://developer.android.com去看看有没有新的SDK公布出来,当时是上午,没见到有更新,心想一定是若干天后才会发布。没想到同事下午告诉我,新版的SDK已经发布了。当时是临下班,由于国内众所周知的原因,访问谷歌很慢,一个SDK几十上百兆,如果用SDK Manager下载,太费劲了。于是继续使用我的老办法——离线安装。

 

之前曾经在网上找过离线安装SDK的方式,也成功下载过,都是在网址:

http://dl-ssl.google.com/android/repository/

后面跟上 类似于“android-1.6_r03-windows.zip“这样的文件名来下载的。这个文件名的得来完全是依靠SDK描述文件

http://dl-ssl.google.com/android/repository/repository.xml

得来的,但是随着android 4.0 SDK发布之后,这个文件内容就被更改了,只剩下平台工具和SDK工具了,真正核心的平台和模拟器已经看不到了。

其实SDK工具是精简版本的SDK框架。只保留了工具,精简掉了其他目录结构。但是本人认为还是SDK框架好。

因为本身较之SDK工具,体积大不了多少,但是解压后自带的目录结构可以让你不用建立那些固定的文件夹了。

顺便说一句,android 4.0 开发环境中要求的平台工具和SDK框架都不一样了。需要更新到新版本。目前最低版本要求为:

SDK Release 14: android-sdk_r14-[依操作系统而定].zip

platform-tools Release 8: platform-tools_r08-[依操作系统而定].zip

SDK框架可以在http://developer.android.com/SDK上直接下载。这里给出Windows操作系统下的SDK框架下载链接:

http://dl.google.com/android/android-sdk_r14-windows.zip

平台工具可以从上文提到的repository.xml中找到,可以根据不同的开发操作系统分别下载,这里给出Windows操作系统下的平台工具下载链接:

http://dl-ssl.google.com/android/repository/platform-tools_r08-windows.zip

 

先下载SDK框架,然后将其解压,我把这个框架解压到了D:\android-sdk-windows目录下

 

 

然后将平台工具解压到这个目录,注意上图中那个“platform-tools”目录,这与压缩包中的“platform-tools”目录相对应。

 

接下来就是最下载最重要的android 4.0的平台了。刚才说到repository.xml文件内容被官方修改了。那么如何找到最新以及以往的平台包呢?

根据SDK Manager.exe启动后的访问记录,我找到了这个新地址:

http://dl-ssl.google.com/android/repository/repository-5.xml

 

这就是保存最新以及以往平台包的xml文件了。从文件里分析,得知4.0的平台包下载路径为:

http://dl-ssl.google.com/android/repository/android-14_r01.zip

其实我只从文件中找到了android-14_r01.zip,至于前面的路径,我是通过尝试以前版本的平台包官方地址猜到的。可见官方的存储结构没有发生变化。

下载完成后,直接将这个包解压到上图中的platforms文件夹下即可

上图中蓝颜色的框内就是新加入的android 4.0平台。

 

完成这一步的时候,我就急于建立模拟器了。但是建立的时候发生错误,说找不到userdata.img。

然后我就将android 4.0平台与其他版本的平台进行对比,发现新版平台中少了“images”目录,我还自作聪明地从其他平台中将文件拷贝出来贴到新平台内。

最后我发现根本不行,无法加载内核数据。其实刚下载这个平台的时候我就曾经有过怀疑。

因为2.3.3官方发布的平台包就已经有81.5M了,而新版的平台包怎么会少到43.92M呢?于是我就重新打开了SDK Manager去查找原因。

原来新版平台中已经将系统镜像分离出来了,如下图所示的蓝色框。

因此我又返回了

http://dl-ssl.google.com/android/repository/repository-5.xml

在这个xml中寻找系统镜像的下载地址,最后我找到了:

http://dl-ssl.google.com/android/repository/sysimg_armv7a-14_r01.zip

但是问题紧接着又来了。既然分离出来了,解压之后放在哪里呢?我尝试着和其它平台一样放到平台内的“images”目录下,结果失败了。

虚拟机创建了,但是半天启动不起来。

后来,我想到了SDK Manager在启动后会自我检查哪些平台装了,哪些没有装。既然它能知道,那我为什么不分析一下它的行为呢?

说干就干,使用SysinternalsSuite中的Process Monitor工具对其进行监视(SDK Manager套了一层exe的壳,实际上是用Java写的,因此在进程中找不到SDK Manager.exe,而是应该监视java.exe)。后来经过分析,我得出了真正应该存放这个镜像的目录:

SDK目录下 system-images\android-14\armeabi-v7a,

 

删掉之前创建的模拟器(因为总是启动不起来,索性删掉了),重新建立了android 4.0的模拟器,OK,大功告成!It works!


 

 

最后总结一下体验:也许是新版本发布的时候没有经过完全检测。当系统语言设置为中文的时候,默认的谷歌输入法总是崩溃。

因为系统提示谷歌输入法意外退出,然后尝试重新该服务,启动之后又崩溃,崩溃之后又启动,如此循环反复。我一气之下将输入方法改成了英文就没有这个提示了。

另外我建立的android 4.0模拟器(WVGA分辨率)开启时占用内存350M,CPU占用率也在30~50%之间。

我所使用的机器CPU为奔腾D双核E5300 2.6GHz。本机内存2GB。经过同事实验,当采用小分辨率的模拟器时,内存占用差别并不大。

但是小分辨率模拟器运行流畅度较之大分辨率的要好很多。如果机器性能不是很好的话,建议用小分辨率的模拟器调试。

 

写完这篇文章后,有朋友反映4.0模拟器中WXGA分辨率的模拟器无法使用的情况。我亲自实验后发现情况属实,虽然能够创建AVD,但点击AVD Manager中的“Start”按钮后无法启动相应的AVD。我发现要测试平板电脑的环境,可以使用分辨率为WSVGA分辨率的配置,这个AVD是可以启动的。

 


 

标签:http,4.0,repository,平台,离线,Android,android,SDK
From: https://blog.51cto.com/u_3932467/6624518

相关文章

  • Android 原生混合flutte运行:Could not resolve io.flutter。
    Android原生项目混合开发flutter,在运行新项目的时候报错。>Couldnotresolveio.flutter:flutter_embedding_debug:1.0.0-2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d. 解决方案添加   url"https://storage.flutter-io.cn/download.flutter.io"repositories{......
  • 如何用Airtest脚本无线连接Android设备?
    1.前言之前我们已经详细介绍过如何用AirtestIDE无线连接Android设备:手把手教你用AirtestIDE无线连接手机!,它的关键点在于,需要先adbconnect一次,才能点击connect按钮无线连接上该设备:但是有很多同学,在使用纯Airtest脚本的形式连接无线设备时,还是遇到了一些困难。今天我们......
  • 离线评价指标
    评价指标首先在介绍二分类的评价指标之前,先介绍几个常见概念用于计算其中的accuracy,precision,recall,F1TP、FP、FN、TNTP:TruePositive,FP:FalsePositive,FN:FalseNegative,TN:TrueNegative后面的p或是n分别代表预测情况,即预测是正样本还是负样本;然后前者t或是f则代表预测值正确与......
  • SPINAND UBI 离线烧录 开发指南
    SPINANDUBI离线烧录开发指南1概述编写目的:介绍SunxiSPINand烧写时的数据布局2名词解释词义UBIunsortedblockimagePEBphysicaleraseblockLEBlogicaleraseblockPEB和logicalblock关系1PEB=1logicalblock1logicalblock=2physicalblocks3总体数据布局ub......
  • 全志Tina Linux SPINAND UBI 离线烧录 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-
    1概述编写目的:介绍SunxiSPINand烧写时的数据布局2名词解释词义UBIunsortedblockimagePEBphysicaleraseblockLEBlogicaleraseblockPEB和logicalblock关系1PEB=1logicalblock1logicalblock=2physicalblocks3总体数据布局ubi方案FLASH上的数据布局sys_pa......
  • Android各组件/控件间通信利器之EventBus
    来源:https://www.cnblogs.com/lwbqqyumidi/p/4041455.html一、build.gradle中dependencies节增加配置api'org.greenrobot:eventbus:3.0.0'二、注册EventBus,一般放到onCreate里面,代码:EventBus.getDefault().register(this);三、注册与解绑一般都是成对出现,代码:/***解绑Ev......
  • Android开发_开启子线程执行耗时操作
    Activityactivity=(Activity)getContext();newThread(newRunnable(){@Overridepublicvoidrun(){activity.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){//在这执行耗时操作......
  • Android:倒计时、定时器、定时执行次数使用笔记
    原文:https://blog.csdn.net/weixin_40420578/article/details/103876900一.倒计时(3、2、1)CountDownTimer() //一共3秒,每隔1秒执行一次 CountDownTimertimer=newCountDownTimer(3000,1000){ @Override publicvoidonTick(longmillisUntilFi......
  • 【4.0】数据库知识点小结数据库辉煌
    【4.0】数据库知识点小结数据库辉煌【一】准备数据创建库createdatabaseday03;#QueryOK,1rowaffected(0.00sec)创建表createtableemp( idintnotnulluniqueauto_increment,namevarchar(20)notnull,sexenum("male","female")notnulld......
  • [PLC]Proface普洛菲斯进入离线模式的方法
       进入离线的方法参考手册第M.1.2章节进入离线模式    Proface ChinaTechnical Support DepartmentSky 进入离线的方法参考手册第M.1.2章节进入离线模式 进入离线的方法•  方法1  上电时直接进入离线在显示开始画面后, 触摸屏幕右......