版本号 | 主要特性 |
---|---|
5.0 | 采用全新的MaterialDesign界面,采用ART虚拟机替换Dalvik虚拟机 |
6.0 | 采用全新的权限机制,在AndroIDManifest.xml声明 |
10.0 | 支持可折叠设备,支持5G |
所有AndroID的APP运行需要的环境
每一个APP都可以理解为一个JAVA程序
跨平台运行需要借助虚拟机,运行库层就包括了虚拟机
APP原生APPWeb APP(使用网页开发技术)混合APP(应用中夹带网页)安卓虚拟机Dalvik 安卓5.0版本以下
ART(AndroID Run Time) 安卓5.0版本及以上
ART虚拟机运行速度更快,但是比Dalvik虚拟机占用更大的空间,典型的以“以空间换时间”
WebKit渲染引擎 可以让安卓系统的浏览器APP完美访问网页内容
APP打开一个网页连接并不需要使用浏览器,原理就是同样使用了WebKit进行了渲染
sqlite数据库 APP支持离线访问,就是利用sqlite数据库,存储一些数据
sqlite是谷歌常用数据库,谷歌浏览器里也嵌入了该数据库
拓展: 1. AndroID系统的app使用java或者Kotlin语言开发 ios系统的app使用OC或Swift语言开发 2.缓存(Cache) 访问速度比一般随机存取存储区(RAM)快的一种高速存储器,并不是使用系统主存那样的DRAM技术,而是使用昂贵但比较快的SRAM技术。 缓存的设置是现代计算机系统发挥高性能的重要因素之一。 缓存分为L1缓存、L2缓存和L3缓存
应用程序框架 各种各样的API,APP进行调用
应用层系统自带的APP安装的APP应用的四大组件activity活动 所有安装包都有AndroIDManifest.xml配置清单文件,对所有活动进行配置和记录
不同的活动是用户在APP界面上看到的页面或者一些页面上的元素按钮或者隐藏功能(如微信支付接口)
活动也可以是各种安装时的权限
service后台服务 例如:手机会定时询问微信是否有新的消息
broadcast receiver广播接收 系统会在各种各样的情况下,发送广播消息,APP通过代码接收想要的广播
例如:电量不足、网络异常、屏幕关闭/点亮
手机电量不足时,单机游戏提示保存游戏存档
content provIDer内容提供 系统为了安全性,每个APP都是独立的用户,通过用户权限设置进行数据或访问硬件进行隔离,APP之间访问数据需要使用content provIDer技术
例如:微信发送照片,访问照片数据
APP资源文件的适配res资源目录 安卓系统规定每个apk包内文件内需要存在一个res资源目录(resource)
res/ animator/ 定义属性动画的XMl文件 anim/ 定义渐变动画的XML文件 @R_502_6004@/ 定义颜色状态列表的XML文件 drawable/ 位图文件或编译为以下可会知对象资源子类型的XML文件 mipmap/ 适用于不同启动器图标密度的可会知对象文件 layout/ 定义用户界面布局的XML文件 menu/ 定义应用菜单的XML文件 raw/ 以原始形式保存的任意文件 values/ 包含字符串、整型数和颜色等简单之的XML文件
重点 | |
---|---|
drawable | APP里的菜单图标 |
mipmap | 桌面上的APP图标 |
layout | 界面布局 |
drawable拓展:
想要适配更多的手机/平板机型,就需要准备不同的资源文件用于选择,但是资源文件越多,apk文件大小就越大。
有些人把资源图标放到网络上管理,但弊端是需要消耗流量,
屏幕标识 | 含义 | 具体参数 |
---|---|---|
ldpi | 低密度屏幕 | 120dpi |
mdpi | 中等密度屏幕 | 160dpi |
hdpi | 高密度屏幕 | 240dpi |
xhdpi | 超高密度屏幕 | 320dpi |
xxhdpi | 超超高密度屏幕 | 480dpi |
xxxdpi | 超超超高密度屏幕 | 640dpi |
nodpi | 不希望缩放 | |
tvdpi | mdpi~hdpi之间 | 213dpi |
anydpi | 适合所有屏幕密度 |
DPI 每英寸点数
手机/平板和APP的适配过程和原则
land 横屏
port 竖屏
系统权限的控制v6.0版本后分为两部分
uses-permission(安装时权限 )权限在apk安装包中的AndroIDManifest.xml文件中设置
例(一部分) | |
---|---|
INTERNET | 联网 |
ACCESS_NETWORK_STATE | 访问网络状态 |
ACCESS_WIFI_STATE | 访问无线网络状态 |
READ_EXTERNAL_STORAGE | 读取外部存储 |
WRITE_EXTERNAL_STORAGE | 写入外部存储 |
BLUetoOTH | 蓝牙 |
required属性如果没有指定,代表TRUE
苹果手机/平板对于测试工程师来说更轻松,因为系统不开源。
从软件功能角度去测试,也需要测试安装、卸载、更新,但是不需要关注权限问题
总结
以上是内存溢出为你收集整理的Android基础理论全部内容,希望文章能够帮你解决Android基础理论所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)