《第一行代码》学习笔记 第一章
1、Android系统架构
大致分为四层:
- Linux内何层:Android基于Linux内核,为Android设备提供了各种硬件底层驱动。
- 系统运行库层:为Android系统提供了主要特性支持、核心库、虚拟机。
- 应用框架层:提供了各种API。
- 应用层:应用程序。
2、Android系统四大组件
- Activity(活动、窗体):应用中所有可见的东西。
- Service(服务):后台运行,用户退出应用服务扔可以继续运行。
- Broadcast receiver(广播接收器):接收来自各处的广播消息,也可向外发送广播消息。
- Content Provider(内容提供器):应用程序之间共享数据。
3、SQLite数据库
Android系统自带、轻量级、运算速度极快、嵌入式关系型数据库、支持标准SQL语法、可以通过Android封装好的API进行操作。
4、Hello World
- Application Name: APP名称。
- Company Domain:公司域名,个人开发example.com。
-
Package Name:包名,Android系统通过包名区分不同应用,Android Studio通过应用名称、域名自动生成合适的包名。
5、Project目录结构
-
.gradle 和. idea:AS自动生成,不会修改。
-
app:项目中代码、资源等内容。
-
build:和外层build类似,编译时自动生成的文件,更多更负责,不会修改。
-
libs:第三方jar包放入此目录,会自动添加到构建路径中。
-
androidTest:编写Android Test测试用例的,对项目进行一些自动化测试。
-
java:所有java代码。
-
res:所有图片、布局、字符串等资源
-
drawable:图片
-
layout:布局
-
values:字符串
-
mipmap:图标
-
- AndroidManifest.xml:整个项目的配置文件,四大组件都需要在这里注册,添加权限说明。
- test:编写Unit Test测试用例,对项目进行自动化测试的另一种方式。
- .gitignore:类似外层,将APP模块内指定的目录、文件排除在版本控制之外。
- app.iml:Intellij IDEA项目自动生成,不会修改。
- build.gradle:app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。
- proguard-rules.pro:指定项目代码混淆规则,让破解者难以阅读。
-
-
build:编译时自动生成的文件,不会修改。
-
gradle:gradle wrapper的配置文件。
-
.gitignore:将指定的目录或文件排除在版本控制之外。
-
build.gradle:项目全局的gradle构建脚本,通常不需要修改。
-
gradle.properties:全局的gradle配置文件,配置的属性会影响到项目中所有的gradle编译脚本。
-
gradlew和gradlew.bat:在命令行界面执行gradle命令,gradlew在linux、mac系统中使用,gradlew.bat在win系统中使用。
-
项目名.iml:自动生成的标识文件,不会修改。
-
local.properties:指定Android SDK路径,自动生成,当SDK路径变化时才修改。
-
settings.gradle:指定项目中所有引入的模块。(app)
6、log工具
- Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。
- Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高一级。
- Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比debug高一级。Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。
- Log.e()。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。