1.了解Android全貌
1.1了解Android的系统构架
1. Linux 内核层 Android 系统是基于 Linux 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如 显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。 2. 系统运行库层 这一层通过一些 C/C++库来为 Android 系统提供了主要的特性支持。如 SQLite 库提供了数据 库的支持,OpenGL|ES 库提供了 3D 绘图的支持,Webkit 库提供了浏览器内核的支持等。 同样在这一层还有 Android 运行时库,它主要提供了一些核心库,能够允许开发者使用 Java 语言来编写 Android 应用。另外,Android 运行时库中还包含了 Dalvik 虚拟机(5.0 系统之后改为 ART 运行环境),它使得每一个 Android 应用都能运行在独立的进程当中,并且拥有一个自己的 Dalvik 虚拟机实例。相较于 Java 虚拟机,Dalvik 是专门为移动设备定制的,它针对手机内存、 CPU 性能有限等情况做了优化处理。 3. 应用框架层 这一层主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心应用就是 使用这些 API 完成的,开发者也可以通过使用这些 API 来构建自己的应用程序。 4. 应用层 所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或 者是你从 Google Play 上下载的小游戏,当然还包括你自己开发的程序。
1.2已经发布的版本
2008年9月 谷歌正式发布了Android 1.0 系统
1.3Android应用开发特色
1. 四大组件 Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver) 和内容提供器(Content Provider)。
2. 丰富的系统控件 Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。 当然如果你品位比较高,不满足于系统自带的控件效果,也完全可以定制属于自己的控件。
3. SQLite 数据库 Android 系统还自带了这种轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准 的 SQL 语法,还可以通过 Android 封装好的 API 进行操作,让存储和读取数据变得非常方便。
4. 强大的多媒体 Android 系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹铃,等等,这一 切你都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩。
5. 地理位置定位 移动设备和 PC 相比起来,地理位置定位功能应该可以算是很大的一个亮点。现在的 Android 手机都内置有 GPS,走到哪儿都可以定位到自己的位置,发挥你的想象就可以做出创意十足的应用,如果再结合功能强大的地图功能,LBS 这一领域潜力无限。
2.环境搭建
2.1
JDK - Java语言的额软件开发工具包
Android SDK。Android SDK 是谷歌提供的 Android 开发工具包
Android Studio
2.2
Android 官网就可以下载最新的开发工具,下载地址是: https://developer.android.google.cn/studio/index.html。
百度网盘去下载,下载地址是:
https://pan.baidu. com/s/1nuABMDb。
安装过程一直点Next,
Android Studio及 Android SDK 的安装路径选择好
版本配置选择不导入
3.创建第一个Android项目
3.1创建项目
点NewProject
选择Empty Views Activity 填写项目名称 选择自己要用的语言点finish完成,新版会自动搭建环境,等下载完成。
3.2启动模拟器
创建好项目之后会自动自动生成模拟器,直接启动运行即可。
出现报错可能是模拟器有问题,建议链接安卓手机重试,如果还报错
解决办法:
彻底删除(网上搜);重新下载创建模拟器时直接连接手机使用
使用手机时要进入开发者模式(多次点击版本号)usb调试打开
运行即可。
3.3了解目录
.gradle 和.idea Android Studio 自动生成的一些文件
app 项目中的代码、资源等内容几乎都是放置在这个目录下的
build 包含了一些在编译时自动生成的文件
gradle 包含了gradle wrapper的配置文件 Android Studio 默认没有 启用gradle wrapper的方式,如果需要打开,可以点击Android Studio导航栏→File→Settings→Build, Execution, Deployment→Gradle,进行配置更改
gitignore 将指定的目录或文件排除在版本控制之外的
build.gradle 是项目全局的 gradle 构建脚本
gradle.properties 全局的 gradle 配置文件,在这里配置的属性将会影响到项目中所有的 gradle 编译 脚本
gradlew 和 gradlew.bat 用来在命令行界面中执行 gradle 命令的 gradlew 是在 Linux 或 Mac 系统 中使用的,gradlew.bat 是在 Windows 系统
HelloWorld.iml iml 文件是所有 IntelliJ IDEA 项目都会自动生成的一个文件
local.properties 用于指定本机中的 Android SDK 路径
settings.gradle 用于指定项目中所有引入的模块
app中
libs 项目中使用到了第三方 jar 包,就需要把这些 jar 包都放在 libs 目录下,放在这个目 录下的 jar 包都会被自动添加到构 建路径里去
res 在项目中使用到的所有图片、布局、字符 串等资源都要存放在这个目录下。当然这个目录下还有很多子目录,图片放在 drawable目录下,布 局放在 layout目录下,字符串放在 values目录下等
AndroidManifest.xml 整个 Android 项目的配置文件
.gitignore 用于将 app 模块内的指定的目录或文件排除在版本控制之外,作用和外层 的.gitignore 文件类似
build.gradle app 模块的 gradle 构建脚本,这个文件中会指定很多项目构建相关的配置
proguard-rules.pro 这个文件用于指定项目代码的混淆规则
4.日志工具的使用
Android 中的日志工具类是 Log(android.util.Log)
Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别 verbose,是 Android 日志里面级别最低的一种。
Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。 对应级别 debug,比 verbose 高一级。
Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分 析用户行为数据。对应级别 info,比 debug 高一级。
Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修 复一下这些出现警告的地方。对应级别 warn,比 info 高一级。
Log.e()。用于打印程序中的错误信息,比如程序进入到了 catch 语句当中。当有错误信 息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别 error, 比 warn 高一级