概述
简介
Android系统架构
- Linux内核层
- 提供了硬件的底层驱动
- 显示驱动、音频驱动、照相机驱动、蓝牙驱动、WiFi驱动、电源管理
- 提供了硬件的底层驱动
- 系统运行库层
- C/C++库(主要的特性支持)
- SQLite库——数据库支持
- OpenGL|ES库——3D绘图
- Webkit库——浏览器内核
- Android运行时库
- 允许开发者使用Java编写Android应用
- Dalvik虚拟机(5.0系统后改为ART运行环境)
- 使得每个Android应用运行在独立的进程中,拥有自己的Dalvik虚拟机实例
- 专门为移动设备定制(针对内存、CPU性能做了优化)
- C/C++库(主要的特性支持)
- 应用框架层
- 构建应用程序时可能用到的API
- 应用层
- 应用程序
Android应用开发特色
- 四大组件
- 活动(Activity)
- 所有Android应用程序的门面
- 服务(Service)
- 后台运行(即使退出应用仍可以继续运行)
- 广播接收器(Broadcast Receiver)
- 允许应用接收广播消息(电话、短信 etc.)
- 可以向外发出
- 内容提供器(Content Provider)
- 应用程序之间共享数据
- 活动(Activity)
- 丰富的系统空间
- SQLite数据库
- 轻量级、运算速度快
- 嵌入式关系型数据库
- 支持SQL语法、Android封装好的API
- 强大的多媒体
- 地理位置定位
搭建开发环境
工具:JDK、Android SDK、Android Studio
过程:https://developer.android.google.cn/studio/install?hl=zh-cn
项目结构
- .gradle和.idea
- Android Studio自动生成
- app
- 项目代码、资源
- build
- 编译时自动生成的文件
- gradle
- gradle wrapper的配置文件
- .gitignore
- 版本控制
- build.gradle
- 项目全局的gradle构建脚本
- gradle.properties
- 全局的gradle配置脚本
- 配置的属性会影响到项目中所有的gradle编译脚本
- gradlew(Linux、Mac)和gradlew.bat(Windows)
- 用来在命令行界面中执行gradle命令
- .iml
- 标识IntelliJ IDEA项目
- local.properties
- 指定Android SDK路径
- settings.gradle
- 指定项目中所有引入模块
app目录
- build
- 在编译时自动生成的文件
- libs
- 第三方jar包
- androidTest
- 测试用例
- java
- Java代码
- res
- 图片(drawable)、布局(layout)、字符串(values)等资源
- AndroidManifest.xml
- 项目的配置文件
- 注册四大组件
- 给应用程序添加权限声明
- test
- 单元测试用例
- .gitignore
- app模块内的版本控制(和外层的作用一样)
- app.iml
- 自动生成
- build.gradle
- app模块的gradle构建脚本
- proguard-rules.pro
- 指定项目代码的混淆规则
HelloWorld运行
-
AndroidManifest.xml注册活动
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
表示该活动时这个项目的主活动,首先启动该活动
-
Java活动代码
-
继承自AppCompatActivity
-
一种向下兼容的Activity(至Android 2.1)
-
Activity是活动基类
-
onCreate():一个活动被创建时必定要执行的方法
// 逻辑和视图分离 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// 引入布局
-
-
-
res/layout定义布局
项目资源(res目录)
- drawable:图片
- mipmap:应用图标
- 兼容各种设备:为一张图片提供不同分辨率的版本,分别放在文件夹下
- 程序运行时,自动根据设备分辨率选择加载哪个文件夹下的图片
- 默认:drawable-xxhdpi
- values:字符串、样式、颜色等
- layout:不具备文件
使用资源
<resources>
<string name="app_name">HelloWorld</string>
</resources>
引用:
- 代码:R.string.app_name
- xml:@string/app_name
build.gradle文件
Android Studio采用Gradle构建项目
Gradle使用了一种基于Groovy的领域特点语言(DSL)来声明项目设置
-
外层build.gradle
buildscript { repositories { google() // jcenter是一个代码托管仓库,声明后可以引用jcenter上的开源项目 jcenter() } dependencies { // 声明了一个Gradle插件,用于构建Android项目,版本为4.0.0 classpath "com.android.tools.build:gradle:4.0.0" } } allprojects { repositories { google() jcenter() } }
-
内层
// 应用了一个插件 // com.android.application:应用程序模块(可以直接运行) // com.android.library:库模块(作为代码库依附于应用程序模块来运行) apply plugin: 'com.android.application' // 配置项目构建的各种属性 android { // 项目的编译版本 compileSdkVersion 30 // 构建工具的版本 buildToolsVersion "30.0.0" defaultConfig { // 项目的包名 applicationId "com.example.helloworld" // 最低兼容的Android系统版本 minSdkVersion 16 targetSdkVersion 30 // 项目的版本号 versionCode 1 // 指定项目的版本名 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } // 指定生成安装文件的相关配置 buildTypes { // debug闭包:指定生成测试版安装文件的配置(可以忽略不写) // 指定生成正式版安装文件的配置 release { // 是否对项目代码进行混淆 minifyEnabled false // 指定混淆时使用的规则文件 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } // 指定项目的依赖关系(本地依赖/库依赖/远程依赖) dependencies { // 本地依赖:本地的Jar包或者目录 implementation fileTree(dir: "libs", include: ["*.jar"]) // 远程依赖(域名:组名:版本号) // 先检查本地是否已经有这个库的缓存,如果没有自动联网下载,然后添加到项目的构建路径中 implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // 声明测试用例库 testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' }
日志工具
Log(android.util.Log)
信息 | 对应级别 | |
---|---|---|
Log.v() | 日志信息 | verbose(最低) |
Log.d() | 调试信息 | debug |
Log.i() | 比较重要的数据,可以帮助分析用户行为数据 | info |
Log.w() | 警告信息,提示可能会有潜在风险,最好修复 | warn |
Log.e() | 错误信息,表示出现严重问题,必须尽快修复 | error |
参数:
- tag:一般传入当前类名,用于对打印信息进行过滤
- msg:具体内容
System.out()弊端:日志打印不可控、打印时间无法确定、不能添加过滤器/日志没有级别区分……
过滤器
最后
以上就是悲凉过客为你收集整理的《第一行代码》笔记1简介搭建开发环境日志工具的全部内容,希望文章能够帮你解决《第一行代码》笔记1简介搭建开发环境日志工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复