1. Android系统架构
解析:
2. Android研究领域
解析:
[1]界面编程
[2]数据库编程
[3]网络编程
[4]游戏编程
[5]OpenGL编程
[6]音频编程
[7]视频编程
[8]安全编程
[9]驱动编程
[10]H5互调编程
3. OTA [Over-the-Air Technology]
解析:OTA [Over-the-Air Technology]即空间下载技术。它是通过移动通信的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。
4.Android应用开发四大组件
解析:Activity,Service,BroadcastReceiver,ContentProvider。
5.Dalvik虚拟机
解析:Dalvik是Google公司设计用于Android平台的虚拟机。它支持已转换为.dex[即Dalvik Executable]格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
6.android:id,android:layout_width,android:layout_height
解析:
[1]android:id,该属性指定该控件的唯一标识,在Java程序中可通过findViewById("id")来获取指定的Android界面组件。
[2]android:layout_width,指定该界面组件的宽度。如果该属性值为fill_parent,则说明该组件与其父容器具有相同的宽度;如果该属性值为wrap_content,则说明该组件的宽度取决于它的内容。
[3]android:layout_height,指定该界面组件的高度。如果该属性值为fill_parent,则说明该组件与其父容器具有相同的高度;如果该属性值为wrap_content,则说明该组件的高度取决于它的内容。
7.Nexus 5X
解析:谷歌Nexus 5X,2015年9月30日该手机在美国旧金山谷歌新品发布会发布。该手机宣传卖点主要为轻薄塑料机身、经过强化成像质量更好的摄像头、持久的电量以及和 Nexus 6P一样的背面指纹识别功能。
8.Bundle类
解析:Android中Bundle类的作用类似于Map,用于存放key-value形式的值。
9.Android布局管理器
解析:LinearLayout[线性布局],RelativeLayout[相对布局],TableLayout[表格布局],FrameLayout[帧布局],AbsoluteLayout[绝对布局],GridLayout[网格布局]。
10.gradle
解析:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言[DSL]来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。
11.intent中setClass,setClassName和setComponent区别
解析:
[1]intent.setClass(当前组件.this, 目标组件.class):打开内部activity。
[2]intent.setClassName(包名, 包名+activity名):打开外部应用。
[3]intent.setComponent(new ComponentName(包名, 包名+activity名)):打开外部应用。
12.Intent
解析:Android中的Intent提供了一种通用的消息系统,它允许在应用程序与其它的应用程序间传Intent来执行动作和产生事件。使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接收者。
13.Service Intent must be explicit
解析:在Android 5.0上采用隐式启动时,会出现java.lang.IllegalArgumentException: Service Intent must be explicit异常。解决方法是给Intent设置具体的包名,指明具体是哪个包启动的Service。
14.IBinder
解析:Android通过IBinder实现IPC[Inter Process Communication]进程间通信的。
15.开启Service方式
解析:
[1]Context.startService():Service会经历onCreate->onStart(如果Service还没有运行,则Android先调用onCreate然后调用onStart;如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次);stopService的时候直接onDestroy,如果是调用者直接退出而没有调用stopService,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。多次调用Context.startService()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动多少次,一旦调用Context.stopService()或者stopSelf(),它都会被停止。需要说明的是,传递给startService()的Intent对象会传递给onStart()方法。调用顺序为onCreate->onStart(可多次调用)->onDestroy。
[2]Context.bindService():Service会经历onCreate()->onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其它操作。这个时候调用者(Context,比如Activity)会和Service绑定在一起,Context退出了,Service就会调用onUnbind->onDestroy相应退出。所谓绑定在一起就共存亡了。
参考文献:
[1] Android研究领域:https://www.zhihu.com/question/27102589