安卓进阶
参考第一行代码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

android进阶之光第2版pdf android进阶之光第二版_android


android进阶之光第2版pdf android进阶之光第二版_网络_02

2、广播机制

用于App的内部、系统、其他App之间的通信。
标准广播–异步
有序广播–同步,广播接收器是有序的。

2.1接受系统广播

系统相当于广播的发布者。

2.1.1 广播接收器

1、静态注册
开机启动用它;即使App没有启动,也可以收到这条广播。消耗很多资源,android7之后,为了后台省电,就不用静态注册。
静态注册实现开机启动
a设置开机启动的权限
b注册需要监听的广播

尽量不用静态注册,只要不使用开机启动,就不使用该静态注册!!!!

2、动态注册
只有当App启动后,才能收到这条广播。
IntentFilter、NetworkChangeReceiver

android进阶之光第2版pdf android进阶之光第二版_android_03

活动、广播、内容提供器、服务四大组件都需要在mainfests中注册。

android进阶之光第2版pdf android进阶之光第二版_网络_04


动态注册的广播接收器一定要取消注册才行。

@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(开放式系统互联通信参考模型)

五层协议

android进阶之光第2版pdf android进阶之光第二版_数据库_05


两台计算机通信底层是MAC。

域名解析—将IP地址和域名的一一映射。

网关

地址解析协议(ARP)—相当于广播