Content
- Android 概述
- 创建Android项目
- 老师文档里的问题
Android 概述
为什么要了解Android的版本发展?
- 写出的App如果用到了较新版本的API,那么在运行早期版本的硬件设备上就无法运行
需要考虑写出的App将来会运行在哪些版本的平台上,需要了解版本发展
Android 的内核是什么,droid是什么?
- Android 平台的基础是 Linux 内核
- droid 的英文解释:机器人,网络收集器
Android 系统的五层都是什么?分别是什么功能?
- ① System Apps--------------------------------------------(系统应用)
② Java API FrameWork ---------------------------------(Java API 框架)
③Native C/C++ Libraries、Android Runtime ------(C/C++原生库、ART)
④Hardware Abstraction Layer -------------------------(HAL 硬件抽象层)
⑤Linux Kernel----------------------------------------------(Linux 内核) - 详见:此中的Android概述.
Dalvik虚拟机和Java虚拟机是一回事吗?是不是凡 java 程序也都可以运行在Dalvik上,或者反之?
- 不是一回事
Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容. - Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX
最终能够发行的Android应用是什么文件?
- APK文件,Android 软件包
一个 APK 文件包含一个 Android 应用的所有内容,
它是 基于 Android 系统的设备 用来安装应用的文件
Android应用的运行方式是什么?
- 每个应用都运行在其自己的安全沙箱内
每个进程都具有自己的虚拟机 (VM),因此应用代码是在与其他应用隔离的环境中运行
默认情况下,每个应用都在其自己的 Linux 进程内运行
什么是组件?Android中有几种组件?都是哪些?功能是什么?
- 应用组件是 Android 应用的基本构建基块
- Activity、服务、内容提供程序、广播接收器
- Activity,表示具有用户界面的单一屏幕
服务,用于执行长时间运行的操作或为远程进程执行作业,在后台运行
内容提供程序,管理一组共享的应用数据
广播接收器,用于响应系统范围广播通知
详见:此中的Android概述.
组件是如何启动的?
- 向系统传递一则消息,说明想启动特定组件的 Intent,系统随后便会启动该组件
内容提供程序不能用 Intent 启动,它会在成为 ContentResolver 的请求目标时启动
什么是清单文件?它主要有什么功能?
- 文件,包含一个应用的所有组件的声明
- 确认组件存在
只有在清单中声明的组件,系统才能看到
什么是应用资源?如何区分不同的资源?
- 应用资源是与源代码分离的,所有的与视觉呈现有关的内容
- 通过资源 ID
对于 Android 项目中包括的每一项资源,SDK 构建工具都会定义一个唯一的整型 ID
开发Android应用的工作流是怎样的?
- Setup — Write — Build & Run — Iterate — Publish
创建Android工程有几种方式?
- 两种,Start New 和 New Project
目前占有率比较高的Android版本是哪些,为什么要考虑占有率?
- Android 4.4 以上
- 提高App给予的用户使用体验
为了项目设计时能够更精准的抓住用户群体 (改)
为什么要考虑设备屏幕的大小及像素密度?
- 要针对不同的屏幕显示,
为了充分适配屏幕,让用户使用起来感觉更精致
链接:关于屏幕的几个指标. - android的硬件平台的差异太大,要考虑程序在不同硬件平台上的表现的一致性 (改)
创建Android项目
创建 android 工程的时候,Application name是什么?
- 应用程序的名字
创建 android 工程的时候,Company Domain是什么?
- 公司域名
Package是什么?
- 包名,自动生成,公司域名的倒写 + 应用程序名
在创建Android工程的时候,Minimum SDK是什么意思?它同虚拟机的 android 版本之间什么关系?
- 最小 sdk,即最低要求的Android版本
低于此版本则不兼容,因为用了低版本所不具有的API - SDK版本与API级别一一对应,API级别与Android版本一一对应
文件起什么作用?
- 即清单文件,是整个项目的配置文件,用于声明应用组件 (注册)
指定程序所需要的系统权限等 (改)
主程序的代码在哪里?
- Android 视图:app 中的 Java ,包中的 MainActivity
- Project 视图:app 中的 src,其中的 main 里的 Java,包中的 MainActivity
Android程序从哪里开始执行?
- 一般是在第一个Activity中的 onCreate() 方法
若在清单文件的 application 中设置了android:name=".MyApplication",
那么程序入口就成了MyApplication的onCreate()方法.
布局文件在哪里,干嘛用的?该文件是什么类型的文件?
- 在 res 的 layout 中,用来观察设计图形界面 (定义UI中各构件的排列及表现)
- 后缀为 .xml
可扩展标记语言 (eXtensible Markup Language)
代码格式化是什么意思?是什么快捷键?
- 将代码按照标准格式重新排列
- Ctrl + Alt + L
app 的启动图标在哪里放着?为什么有多个?
- 在 res 的 mipmap 中
- 不同的像素密度,Android赋予了不同的倍率.
为适应不同的硬件 (分辨率不同 改)
values 文件夹中放着什么东西?
- 要使用的数据,字符串等
要考虑兼容不同语言等
观察Android工程有哪些角度?如何切换?
- Android 角度、Project 角度、Package 角度等 (视图)
- 点击左上角的观察角度,有下拉菜单
R类是什么类,有几种?它有什么用?从哪里找到它?其中的内容我们可以自主修改吗?
- 系统自动生成的类,是一种资源类.
一种是 Android 项目中的,另一种是 Module 中的.
R文件里面定义了R类,R类又包含了好几个内部类:drawable, layout, id等等,每个内部类中定义了一系列常量,每个常量标识一个资源:布局、字符串、图片等.
一个是android自身的R类,另一个是同你的项目密切相关的R类 (改) - 可用来调用资源,通过资源 ID
R.目录.文件名
(R 类的很多内嵌类中定义的很多常量) - Project 角度,在 app 的 build 中的 generated 的 source 里 r 的 debug 中。。。
我没有找到 r ,source 里只有一个 buildConfig,Rebuild Project时也没报错…暂不知为何 - 不能自主修改,都是自动生成的
在运行Android程序的时候,如何选择运行设备?
- 在 Toolbar 工具栏中,下拉列表选择
End.