一、android studio安装
1. 下载
android官网:https://www.developer.android.google.cn/studio
国内代理站点:http://www.android-studio.org/
官网网速不行,下面从国内代理下载安装:
2. 安装
- 下载好了直接双击开始安装,一路next到如下界面,选择不导入配置即可
- 弹出如下界面,是否分享数据,我这里选不分享
- next,开始具体配置
- 选择标准(也可以自定义)
- 选择主题风格,这里选亮色light
- 选择finish完成配置,在额外下载一些更新内容后就OK了
3. hello world
- 创建空白项目,填写名称、地址、版本等信息(这里androidX是默认勾选的,用以取代android support library)
- 创建安卓手机模拟器
- 选择型号,next
- 选择系统版本,首次使用需下载镜像(这里发现自动下载到C盘了,无法设置路径)
- 下载完成后进入模拟器配置页面,这里直接默认设置finish
- 回到主页面发现报错,有新的event提示,更新kotlin plugins
- 弹出下图界面,点击右侧三角符号启动模拟器
- 成功启动,右下有一些网络报错,可能是办公环境导致,先忽略
- 顶栏功能:编译按钮、选择项目、选择设备、运行项目;单击这里的运行项目即可得到模拟器显示hello world
二、项目解析
1. 默认为android模型的项目结构
- 是经过android studio转换过的结构,便于快速开发
2.项目结构模式切换
3. project模式
- 是真实的目录结构,与在文件夹中的文件一一对应
- .gradle和.idea——studio自动生成的文件,不用管
- app——项目中的代码、资源都放在这个目录下。重点
- build——为编译时自动生成的文件,不用管
- gradle——gradle wrapper的配置文件;android studio默认启用gradle wrapper,如要修改为离线,可点击“导航栏——file——settings——build/execution/deployment——gradle”
- .gitignore——用来将目录/文件排除在版本控制之外,版本控制白名单
- build.gradle——项目全局的gradle构建脚本,通常不需要修改
- gradle.properties——全局的gradle配置文件
- gradlew和gradlew.bat——用于在命令行界面执行gradle命令,前者linux/mac,后者windows
- helloworld.iml——iml文件是所有intelliJ IDEA项目都会自动生成的文件(android studio是基于intelliJ IDEA开发),是标识文件,不用管
- local.properties——用于指定本机SDK路径,如果SDK位置变化了,在这里修改
- settings.gradle——用于标识引入的模块(include ‘:app’)
4. project模式——app目录下的结构
- build——和目录外的build类似,编译时自动生成的文件,不用管
- libs——三方jar包存放处,这些jar包会自动添加到项目的构建路径里
- androidTest——用于编写测试用例
- java——java/kotlin代码存放处,点开有自动生成的MainActivity文件
- res——项目中用到的所有图片、布局、字符串等资源存放处
drawable——图片
layout——布局
values——字符串
- AndroidManifest.xml——整个项目的配置文件,程序中定义的四大组件都需要在这个文件里注册;还可以在这个文件中给应用程序添加权限声明。经常用到
- test——用于编写Unit Test测试用例
- .gitignore——与外层.gitignore作用类似,可将app模块内指定目录文件排除在版本控制之外
- app.iml——IntelliJ IDEA项目自动生成文件,不用管
- build.gradle——app模块的gradle构建脚本,文件中会指定很多项目构建相关配置
- proguard-rules.pro——用来防破解,代码写完打包成安装包文件后,可将代码进行混淆
5. hello world实现解析
① 如下图,首先mainactivity在 androidmanifest.xml 里进行注册
② mainactivity的代码显示,setContentView()方法引入了activity_main布局文件。
③ 布局文件都定义在res/layout目录下,找到activity_main布局文件并打开,可以看到textveiw控件下,定义了文本helloworld!
6. res
① 目录含义
- drawable开头的目录下,都是放图片的;
- mipmap开头的目录下,都是放图标的;
- values开头的目录下,都是放字符串、样式、颜色等配置的;
- layout开头的目录下,都是放布局文件的
② 使用方法
- 引用字符串:代码中—>R.string.app_name;xml中—>@string/app_name
- 其中string部分是可以替换的:引用图片drawable、引用图标mipmap、布局文件layout…
7. build.gradle——插件声明&android闭包&dependencies闭包
gradle是项目构建工具,使用基于groovy的领域特定语言(DSL)来进行项目设置,摒弃了传统的基于XML的各种繁琐配置;共有两个build.gradle文件,一个在外层目录下,一个在APP目录下
-
外层目录下的build.gradle,如下图:
-
app目录下的build.gradle
① 插件声明&android闭包:
② dependencies闭包:可指定当前项目所有依赖关系
一般分三种——本地依赖、库依赖、远程依赖
本地依赖:可对本地jar包或目录添加依赖关系
库依赖:对项目中的库模块添加依赖关系
远程依赖:可对jcenter库里的开源项目添加依赖
三、日志工具
1. android的日志工具Log(android.util.Log):共五类
① Log.v():用于打印琐碎日志,verbose级
② Log.d():用于打印调试信息,debug级
③ Log.i():用于打印重要数据,如用户行为分析数据,info级
④ Log.w():打印警告信息,提示潜在风险,warn级
⑤ Log.e():打印错误信息,代表已出现的严重问题,如进入catch语句;error级
2. 实践——添加日志语句
① 在mainactivity类下的oncreat方法下,添加一行打印日志的语句
② 运行项目后可以看到执行oncreat的D级日志输出:
- 2021-05-25 15:43:32.257 6481-6481/com.example.hello D/MainActivity: onCreat execute
- 可以看到 打印时间、程序进程号、包名、tag名、日志内容
3. Log过滤
① println()方法也可以打印日志,但不支持分级、添加标签等,故弃用,只使用Log()方法
② logcat过滤器
- show only selected application:只显示当前程序日志
- firebase:不用管,谷歌提供的开发者工具
- no filters:无过滤
- edit filter configuration:自定义过滤器;例如,筛选名为data的日志
③ 关键词过滤
4. Logcat级别控制
① 级别排序:verbose<debug<info<warn<error
② 显示逻辑:只显示选定级别及以上的日志