安卓发展历史
成都创新互联是专业的稷山网站建设公司,稷山接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行稷山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
2005年,Google收购了成立仅22个月的高科技企业Android。
2007年11月5日,Google公司正式向外界展示Android操作系统。
2007年11月5日,Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟(简称:OHA)。
2008年,Patrick Brady于Google I/O大会上提出Android HAL架构图。
2008年8月18日,Android获得美国联邦通信委员会的批准。
2008年9月,Android1.0正式发布。
2008年9月22日,美国运营商德国T-Mobile在纽约正式对外发布第一款Android手机——T-Mobile G1。该款手机为台湾宏达电子(HTC)代工制造,是世界上第一部使用Android操作系统的手机。 2008年10月,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。
2008年10月22日,T-Mobile G1正式发售。
2009年4月30日,Android1.5正式发布。
2009年4月,HTC G1和HTC G2市场大卖成为仅次于iPhone的热门机型。
2009年9月15日,Android1.6正式发布。
2009年9月,HTC Hero G3广受欢迎,成为全球最受欢迎的机型。 2009年10月28日,Android 2.0 智能手机操作系统正式发布。
2009年10月,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。该款手机为台湾宏达电子(HTC)代工制造。
2010年1月7日,Nexus One开始对外发售。
2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux开发主流将分道扬镳。
2010年5月19日,Google正式对外发布Android2.2智能操作系统。
2010年5月20日,Google对外正式展示了搭载Android系统的智能电视-Google TV,该电视为全球首台智能电视。
2010年7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。
2010年7月9日,美国NDP集团调查显示,Android系统已占据了美国移动系统市场28%的份额,全球17%的市场份额。
2010年9月,Android应用数量超过9万个。
2010年9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。 2010年10月26日,Google宣布Android达到第一个里程碑:电子市场上获得官方数字认证的Android应用数量已经达到10万个。
2010年12月7日,Google正式发布Android2.3操作系统。
2011年1月,Android应用数量超过20万。
2011年1月,Google对外公布数据,每日Android设备的新用户数达到30万。
2011年2月2日,Android3.0正式发布。
2011年3月25日,谷歌暂停开源Android3.0,并将暂时阻止小型手机生产商使用其Android3.0“Honeycomb”系统,期限未定。
2011年7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。
2011年8月,谷歌收购摩托罗拉移动。
2011年9月,数据显示,Android应用数目已经达到48万。
2011年9月,Android的市场占有率达到43%。
“数据”保存位置既有可能保存在android/data文件夹下,也有可能保存在该应用程序安装运行后自行生成的文件中,操作方法如下:
1、首先在手机界面点击【设置】,如下图所示。
2、进入设置界面点击【安全和隐私】,如下图所示。
3、然后点击【更多安全设置】,如下图所示。
4、接着在打开的页面中,点击【设备管理器】。
5、然后选择【文件管理】,点击【激活】即可,如下图所示就完成了。
较早版本的编译系统中,错误内容如下:
而在新版编译系统中,则是这样:
这个异常是 Android 应用的方法总数限制造成的。Android 平台的 Java 虚拟机 Dalvik 在执行 DEX 格式的 Java 应用程序时,使用原生类型 short 来索引 DEX 文件中的方法。这意味着单个 DEX 文件可被引用的方法总数被限制为 65536。通常 APK 仅包含一个 classes.dex 文件,因此 Android 应用的方法总数不能超过这个数量。
即使方法数没有超过 65536,能正常编译打包成 apk,在安装的时候,也有可能会提示 INSTALL_FAILED_DEXOPT 而导致安装失败,这个一般就是因为 LinearAlloc 的限制导致的。这个主要是因为 Dexopt 使用 LinearAlloc 来存储应用的方法信息。 Dalvik LinearAlloc 是一个固定大小的缓冲区。在 Android 版本的历史上,LinearAlloc 分别经历了 4M/5M/8M/16M 限制。Android 2.2 和 2.3 的缓冲区只有 5MB,Android 4.x 提高到了 8MB 或 16MB。当方法数量过多导致超出缓冲区大小时,也会造成 Dexopt 崩溃。
要解决这个问题,一般有下面几种方案:
美团的技术团队在文章中写到:
并在 AndroidManifest 中添加以下声明:
下图是 Android 的打包流程示意图:
虽然谷歌的分包方案很简单,但是效果并不是那么好,谷歌本身也枚举了分包方案的 缺点 :
针对上面的问题,参考网上的一些解决方案,如美团、facebook、微信等,初步使用的解决方法如下:
下面是流程图:
Android Studio 自带的 APK Analyzer,功能齐全,使用方便,使用 Android Studio APK Analyzer ,我们至少能够做到:
开发阶段使用 Android Studio 打开一个项目时,有三种方式使用 APK Analyzer 工具:
首先 dex 方法数和 dex文件有关,我们把源码编译、转化为 dex 文件时,dex 文件中会有一个区域包含了所有源码中定义或引用的方法列表,这个区域中所有方法项的总数就是方法数。之所以要考虑方法数其实是因为 Android 在设计之初只给这个区域定义了两个字节的范围(方法数量不能超过 65535 个),当超过了这个限制就会导致编译不成功,所以我们要关注方法数问题。
查看方法数可以使用命令行,也可以使用 dexcount-gradle-plugin 插件。
开发中减少方法数的实践经验主要有如下一些:
最近在做有关于应用统计有关的工作,主要是统计系统中客户端应用(非系统自带的那些基础应用,比如DownLoadManager),在每一天的使用情况,统计内容包括:应用打开次数,应用合计使用时长等。
在所搜寻的方案中,大致有如下两种:
以下方案采用两个方案并行,主要是以系统数据统计结果为主,以自行记录的数据作为参照,用以对比两组数据,以保证数据统计结果的有效性和稳定性。
在Android中,系统会自行记录应用的打开次数和使用时间,且提供了相关api于开发者,但是每一次版本提升都可能会对api带来相当大的改变,这一块也不例外。但是始终没有变化的就是在拨号键盘输入* # * #4636# * #*,进入工程模式,点击“使用情况统计数据”,你就可以看到统计界面了。由于各个版本之间差异比较大,而且相关的资料也比较少,本次使用的api以及相关的说明都是以Android-5.1为基础。在某些版本中,应用统计api,存在不少缺陷以及避坑的地方,尤其是手机厂家修改过源码之后,所以对于某些品牌的测试机器,程序的运行结果会有一点不一样,请各位读者有所注意。
本文主要介绍了关于Android系统中统计各个app的使用情况的解决方案,以及获取相关数据的方法。关于系统记录的数据的原理以及在该原理的逻辑下可能出现的bug,将会在接下来的文章中详细阐述。
github: UseTimeStatistic
参考文献:
Android 5.0以上通过UsageStatsManager类 获取应用使用情况(精品)
android如何获取系统里各个应用的使用时间?
Android UsageStatsService:要点解析
Android5.1应用打开次数获取
下一篇:Android应用统计-使用时长及次数统计(二)
app store的应用都是经过严格审查的,而android的审查宽松,很多手机应用开发者都是先把开发的android应用放到市场上,获得用户的试用反馈,然后优化应用,等稳定后才会考虑放到app store中。另外android开发成本低,入门容易,所以android开发者也很多。所以,总体而言,android的应用会比app store的应用多。