【Android】1.0 安卓生猛上手
1.Android操作系统,由安迪鲁宾发明,原发明用于照相机操作系统,市场反应惨淡,需求不足,后2005年被谷歌收购,用于智能手机操作系统。
2.logo来源:设计师上厕所看到男女厕所区别标志联想创作。
3.JVM和DVM:Java代码能转换成机器识别码,就是靠JVM. 但是Android开发代码也是Java代码,用JVM足够了,之所以谷歌单独整出来DVM,不是因为DVM比JVM怎么怎么好,是因为版权问题。
3.1谷歌被sun(孙……)公司给告了(2006的事情,sun向谷歌索要2000万美元 10%的Android相关权益许诺其三年的Java授权,谷歌拒绝),2007年11月份,谷歌自主开发Android平台虚拟机Davik,避开sun诉讼。后来2010年1月sun(孙)公司被Oracle公司收购,两家公司就接着扯皮之旅……,特别说明的是2011那件1月Android占1/3智能手机份额,2011年11月占50%。
3.2既然谷歌干了,那肯定要么不干,要么就做得比原版好,所以两者区别就有了。
区别:jvm:由.java变成.class变成.jar(jdk javac),基于栈(普通内存)的架构
dalvik vm:.java变成.class变成.dex(只有一个文件)变成.odex(sdk dex) 基于寄存器(CPU)的架构,这里着重说明的是dvm把所有的.class变成一个.dex文件,原理近似于当你把70MB的多层文件目录,多个文件,打包式复制到某个盘时,会有明显的复制进度条,但转成一个文件后,可能文件大小会变大(105MB左右),但是相反,复制完成的速度相当快,基本看不到复制的进度条。
4.ART模式。Android Runtime,在Android4.4之前,安卓手机系统应用程序均在Dalvik Java的虚拟机上运行,依靠一个编译器实现与应用程序的沟通,应用程序运行时,需要将程序内的代码转换成机器码才能运行,无形之中附加了一道手续,这造成了好点相对较快,占用内存大,几十旗舰机用久了也会卡顿严重的现象。ART模式开发之后,Android手机运行那就相当快了。
4.1原理:在安装应用程序时,自动对程序进行代码预读取编译,程序直接编译成机器语言,省去dalvik模式要时时转换代码,实现高效率、省电、占用更低内存。缺点是:占用略高一些的存储空间(比如QQ时间占用内存原本为44.64MB,ART模式下,变为63.00MB)、安装程序时要想比Dalvik模式要长一些时间来实现预编译(现在看来,这基本都不算缺点了)。
【Android】1.0 安卓生猛上手的更多相关文章
- Android 5.0 Lollipop初上手体验
在等了好几天还没有等到OTA升级提示,前天笔者给Nexus4线刷入了官方提供的Lollipop的镜像,在试用了这两天之后,现在总结下自己感觉很惊艳的地方和一些地方的吐槽.(点击图片可以查看大图) 1. ...
- Android 7.0真实上手体验
Android 7.0真实上手体验 Android 7.0的首个开发者预览版发布了,支持的设备只有Nexus6.Nexus 5X.Nexus 6P.Nexus 9.Nexus Player.Pixel ...
- 使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板
Ref: http://www.iplaysoft.com/android-v4-ics-for-virtualbox.html 随着 Android 手机的各种软件应用越来越多,很多没有购买的朋友都 ...
- 还在期待安卓9.0吗?Android 10.0要来了
目前,美国 Google公司的 AndroidP (安卓9.0),已经正式全面推出有几个多月了.众多手机品牌厂商也都在积极的进行更新适配 Android 9.0 系统(修改UI界面也算是二次开发,嗯) ...
- 恩布900手机客服,安卓版本号Entboost Android 1.0 正式公布
恩布900手机客服,安卓版本号Entboost Android 1.0正式公布,支持一行代码在安卓手机实如今线客服的功能,支持文本.表情,图片,语音和离线消息等. ENTBOOST是跨平台.跨应用的实 ...
- 安卓从业者应该关注:Android 6.0的运行时权限
Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注.因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变. 没有深入了解运行时权限的开发 ...
- Android 5.0 到 Android 6.0 + 的深坑之一 之 .so 动态库的适配
(原创:http://www.cnblogs.com/linguanh) 目录: 前序 一,问题描述 二,为何会如此"无情"? 三,目前存在该问题的知名SDK 四,解决方案,1 对 ...
- Android 6.0的运行时权限
原文 http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/ 主题 安卓开发 Andr ...
- Android 6.0 SDK 找不到HttpClient的解决方法
一.情况描述 在eclipse或Android Studio开发时(笔者目前只用过Android Studio),设置Android SDK的编译版本为23时,且使用了httpClient相关类的库项 ...
随机推荐
- 魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法
构造方法(参见小甲鱼入门教程) __ init__()方法:类的初始化方法,初始化类对象时被调用,需要的时候再调用它 注意点:这个方法的返回值必须是None class Rectangle(): de ...
- Node.js的mysql执行多表联合查询
数据库(test)中的表结构(admin.user) //执行多表结合查询 var mysql = require('mysql'); var connection = mysql.createCon ...
- RUCM简介
一.动机 UCM:用例建模,主要用于结构化和文档需求方面. UCSs:用例规格说明书,通常是文本文档,所以描述中不可避免含有歧义. RUCM:限制性用例建模.目标 G1.使UCMs更加可理解并且更精确 ...
- hdu_1051 Wooden Sticks 贪心
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- SQL函数:返回传入的字符中的数字或者字符
/******返回传入的字符串的所有字符 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER function [dbo].[F_Get ...
- node.js知识点提取
javascript是脚本语言,脚本语言都需要一个解析器才能运行.
- Knime读取Jason数据
Knime ETL 工具 Jason数据解析到DB 1. 下面例子是一段Jason代码 [{,,},{,,},{,,}] 2. 用文本文件存储上面代码. test_jason.txt 3. 用File ...
- centos7.3下安装redis3.2 yum安装
1.进入centos 2.运行:yum install redis 3.安装完成后,选择y,确认 4.进入:cd /etc/;vi redis.conf 将,daemonize 修改为yes,并且添加 ...
- oracle 备份恢复篇(二)---rman 增备恢复--不完全恢复
一,环境准备 全备脚本: export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01 export ORACLE_SID=prod expor ...
- jackson工具类有动态属性过虑功能
在业务应用中经常会有指定属性序列化json的需求,C#中这个功能很容易就可以解决:使用lambda重新构造一下匿名对象就可以了.一行代码搞定.java是这样解决的. public JsonMapper ...