
正文
Unit1:Android
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
unit11.安卓版本
最新数据访问维基百科
2008年,android1.0
2011年,android3.0,平板失败
同年10月,android4.0,无差别使用
2014年,android5.0,ART代替Dalvik虚拟机,Android Wear,Android Auto,Android TV,穿戴、汽车、电视。
2015年,android6.0,运行时权限
2016年,android7.0,多窗口模式
2.Android特色四大组件
- 活动
程序的门面,应用中看到的东西,都放在活动中。
- 服务
后台默默运行,无法看到,即使退出应用,服务任然运行。
- 广播接收器
接受各处广播,比如电话、短信等,也可以发送广播消息。
- 内容提供器
应用程序之间共享数据,读取系统电话簿中的联系人。
系统控件
SQLite数据库
多媒体
地理定位
3.创建开发环境- JDK
Java软件开发包,包括运行环境,工具集合,开发类库。
- SDK
谷歌提供的Android开发工具包
- Android Studio
4.解析Android目录结构.grale和.idea 自动生成文件,不需要关心
app
build 不需要关心
libs jar包存放
src
androidTest 测试用例,自动化测试
main
java Java代码存放处
res 资源存放处,drawable图片,layout布局,values字符串
AndroidMainfast.xml 四大组件的注册和配置
test Unit Test 测试
.gitignore 模块内版本控制
app.iml 标志,不需要关心
build.gradle gradle构建脚本
proguard-rules.pro 混淆规则,不希望代码破解,代码混淆
build 编译自动生成文件,不需要关心
gradle gradle wrapper配置文件
.gitignore 版本控制
build.gradle 全局构建脚本
gradle.properties 全局配置文件
gradlew和gradlew.bat 命令行执行gradle命令。.bat是在Windows系统中运行的
HelloWorld.iml 标识InteliJ IDEA项目,不改
local.properties 指定SDK路径,不改
settings.gradle 引入模块
5.运行解析1.AndroidMainfest.xml
四大组件
- 活动
程序的门面,应用中看到的东西,都放在活动中。
- 服务
后台默默运行,无法看到,即使退出应用,服务任然运行。
- 广播接收器
接受各处广播,比如电话、短信等,也可以发送广播消息。
- 内容提供器
应用程序之间共享数据,读取系统电话簿中的联系人。
系统控件
SQLite数据库
多媒体
地理定位
- JDK
Java软件开发包,包括运行环境,工具集合,开发类库。
- SDK
谷歌提供的Android开发工具包
- Android Studio
4.解析Android目录结构.grale和.idea 自动生成文件,不需要关心
app
build 不需要关心
libs jar包存放
src
androidTest 测试用例,自动化测试
main
java Java代码存放处
res 资源存放处,drawable图片,layout布局,values字符串
AndroidMainfast.xml 四大组件的注册和配置
test Unit Test 测试
.gitignore 模块内版本控制
app.iml 标志,不需要关心
build.gradle gradle构建脚本
proguard-rules.pro 混淆规则,不希望代码破解,代码混淆
build 编译自动生成文件,不需要关心
gradle gradle wrapper配置文件
.gitignore 版本控制
build.gradle 全局构建脚本
gradle.properties 全局配置文件
gradlew和gradlew.bat 命令行执行gradle命令。.bat是在Windows系统中运行的
HelloWorld.iml 标识InteliJ IDEA项目,不改
local.properties 指定SDK路径,不改
settings.gradle 引入模块
5.运行解析1.AndroidMainfest.xml
.grale和.idea 自动生成文件,不需要关心
app
build
不需要关心
libs jar包存放
srcandroidTest 测试用例,自动化测试
mainjava Java代码存放处
res 资源存放处,drawable图片,layout布局,values字符串
AndroidMainfast.xml 四大组件的注册和配置
test Unit Test 测试.gitignore 模块内版本控制
app.iml标志,不需要关心
build.gradle gradle构建脚本
proguard-rules.pro 混淆规则,不希望代码破解,代码混淆
build 编译自动生成文件,不需要关心
gradle gradle wrapper配置文件
.gitignore 版本控制
build.gradle 全局构建脚本
gradle.properties 全局配置文件
gradlew和gradlew.bat 命令行执行gradle命令。.bat是在Windows系统中运行的
HelloWorld.iml 标识InteliJ IDEA项目,不改
local.properties 指定SDK路径,不改
settings.gradle 引入模块
1.AndroidMainfest.xml
注册活动,没有在A.xml中注册的活动不能使用。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher" // 图标
android:label="@string/app_name" // 应用名称
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter> // 确定主活动
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
2.Java.xxActivity
MainActivity继承AppCompatActivity(Activity的子类)。
public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //引入布局的方法
}
}
R.layout.hello_world 获取引用
3.res
- drawable 图片
- mipmap 图标
- layout 布局
- values
- string 字符串
- color 颜色
- stytle 样式
@String/hello_world 获取引用
4.build.gradle
Android Studio采用Gradle构建项目。
Gradle构建工具,基于Groovy领域的特定语言(DSL)声明项目设置,摒弃了XML(如Ant和Maven)繁琐配置
buildscript {
repositories {
google()
jcenter() //代码托管到jcenter上
} dependencies {
classpath 'com.android.tools.build:gradle:3.5.2' //声明一个Gradle插件
}
}allprojects {
repositories {
google()
jcenter() }
}
gcenter,代码管理仓库。很多Android开源项目都选择其托管项目
声明Gradle插件,因为Gradle不止Android,Java、C++都可以构建。
apply plugin: 'com.android.application' //应用程序模块,可以直接运行
//也可以添加'com.android.library'库模块,依附于其他程序模块运行
android { // 项目细节配置
compileSdkVersion 29 // 编译版本 29表示Android 10.0
buildToolsVersion "30.0.2" // 构建工具版本
defaultConfig {
applicationId "com.example.unit3listviewtest"
minSdkVersion 15 // 最低兼容
targetSdkVersion 29 // 目标版本测试
versionCode 1 // 项目版本号
versionName "1.0" // 项目版本名
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes { // 生成安装配置
debug { // 测试版安装文件配置,可以忽略不写
}
release { // 正式版安装文件配置
minifyEnabled false // 代码是否混淆
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// 第一个txt是安卓SDK目录下,所有项目通用的混淆规则
// 第二个pro是当前项目根目录,当前项目的混淆规则
}
}
}dependencies { // 指定所有项目的依赖关系
implementation fileTree(dir: 'libs', include: ['*.jar']) // 本地依赖,本地lib下的jar包
implementation 'androidx.appcompat:appcompat:1.2.0' // 远程依赖
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.12' // 声明测试用例库
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
依赖关系分三种
1.本地依赖 本地jar包或目录依赖
2.库依赖 对项目中的库模块添加依赖
3.远程依赖 对jcenter库上的开源项目添加依赖关系,域名:组名:版本号
6.日志工具
android日志工具类Log(android.util.Log),5中方法使用Log.d(tag,msg)
tag:打印信息过滤,一般当前类名
msg:打印的具体内容__
| 名称 | 等级 | 解释 |
|---|---|---|
| Log.v | verbose | 打印琐碎信息 |
| Log.d | debug | 打印调试信息 |
| Log.i | info | 打印比较重要的信息 |
| Log.w | warn | 打印警告信息,潜在需要修复的地方 |
| Log.e | error******** | 错误信息,需要尽快修复 |
添加过滤器
| 过滤器名称 | 作用 |
|---|---|
| Firebase | 谷歌提供的分析工具 |
| No Filters | 没有过滤器,所有的日志显示 |
| Edit Filter Configuration | 自定义过滤器 |







