安卓进阶
参考第一行代码Android第二版
安卓
- 阿里云镜像
- 1、碎片学习
- 2、广播机制
- 2.1接受系统广播
- 2.1.1 广播接收器
- 2.2 自定义广播
- 3、文件储存
- 4、数据库储存
- 5、服务
- 6、网络
阿里云镜像
google()
mavenCentral()
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven{ url 'https://maven.aliyun.com/repository/google'}
maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{ url 'https://maven.aliyun.com/repository/public'}
maven{ url 'https://maven.aliyun.com/repository/jcenter'}
// jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.0'
}
}
allprojects {
repositories {
maven{ url 'https://maven.aliyun.com/repository/google'}
maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{ url 'https://maven.aliyun.com/repository/public'}
maven{ url 'https://maven.aliyun.com/repository/jcenter'}
//jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1、碎片学习
生成两个fragment
2、广播机制
用于App的内部、系统、其他App之间的通信。
标准广播–异步
有序广播–同步,广播接收器是有序的。
2.1接受系统广播
系统相当于广播的发布者。
2.1.1 广播接收器
1、静态注册
开机启动用它;即使App没有启动,也可以收到这条广播。消耗很多资源,android7之后,为了后台省电,就不用静态注册。
静态注册实现开机启动
a设置开机启动的权限
b注册需要监听的广播
尽量不用静态注册,只要不使用开机启动,就不使用该静态注册!!!!
2、动态注册
只有当App启动后,才能收到这条广播。
IntentFilter、NetworkChangeReceiver
活动、广播、内容提供器、服务四大组件都需要在mainfests中注册。
动态注册的广播接收器一定要取消注册才行。
@Override
protected void onDestroy() {
super.onDestroy();
//动态注册注册的广播接收器一定要取消注册。取消注册就用unregisterReceiver
unregisterReceiver(networkChangeReceiver);
}
在网络接收器中,编写监听网络变化的程序,但是访问网络系统的状态是需要声明权限的。
<!-- 向整个系统申请-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2.2 自定义广播
发送一个广播:intent(你想干什么,系统就会根据你的想法去做。)
发送者
3、文件储存
a.字节流
stream
b.字符流
按照一个字符一个字符
FileOutputStream 、buffle
c.缓存
stringbuffer就是线程安全,stringbuild是线程不安全。
4、数据库储存
SQLite数据库----主要用于嵌入式设备,并发性不好。
数据类型简单
SQLiteOpenHelper用法;
5、服务
服务是android中实现程序后台运行的解决方案,一般要求长期运行的任务。不与用户交互。
前台服务
动态更新消息。(天气)
IntentService
6、网络
http协议通常用于浏览器和服务器之间通信。
android中支持WebView
TCP和UDP
ISO和OSI(开放式系统互联通信参考模型)
五层协议
两台计算机通信底层是MAC。
域名解析—将IP地址和域名的一一映射。
网关
地址解析协议(ARP)—相当于广播