树先生の博客

更好的成为更好的你


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Retrofit学习

发表于 2019-07-14 | 分类于 Android |
字数统计: 2.6k | 阅读时长 ≈ 13

what

网络请求框架,底层是使用OkHttp请求实现的。通过动态代理来创键创键解耦的请求,具体的请求交给OkHttp。同时支持Rxjava,以及各种格式的转换。官方文档地址:Retrofit

how

定义请求API

创键接口,以及请求定义方法

1
2
3
4
5
6
7
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
public interface TestApi {
@GET("article/list/0/json")
Call<ResponseBody> getArticle();
}
阅读全文 »

OkHttp学习

发表于 2019-07-13 | 分类于 Android |
字数统计: 2.3k | 阅读时长 ≈ 11

what

非常好用的请求库,还是附上官方文档

how

正常步骤就是

  1. 构建键Client
    1. 添加header
    2. 拦截器
    3. 缓存
    4. dns
    5. 代理
    6. 超时
    7. 监听事件
  2. 构建请求Request
    1. url
    2. header
    3. 请求方式
    4. 请求体
  3. 发送请求Call
  4. 获得响应Response
  5. 处理响应
阅读全文 »

学习使用Rxjava

发表于 2019-07-10 | 分类于 Android |
字数统计: 2.4k | 阅读时长 ≈ 11

RxJava

What:

异步

基本概念

  • Observable 通用的被观察者
  • Observer 通用的观察者
  • Scheduler 线程调度器
  • Disposable 一次性的

how

阅读全文 »

归纳下广播和内容提供器

发表于 2019-07-10 | 分类于 Android |
字数统计: 2k | 阅读时长 ≈ 9

广播

what

android内部封装的一种通信方式,如其名,广播,向注册的接收者广播信息

  • 标准广播:异步执行,所有接受器几乎同时收到,无法被拦截
  • 有序广播:同步执行,有先后顺序,按照优先级,可以被拦截

接受系统广播

在android系统内部会有巨多的广播,来向向应用扩散重要信息。比如开机,网络,sd卡等等。

想要接受系统广播首先需要定义广播接收器:

  • 静态注册:在Manifest中声明关心的广播
  • 动态注册:通过代码声明
阅读全文 »

关于Handler消息机制梳理

发表于 2019-07-07 | 分类于 Android |
字数统计: 2.5k | 阅读时长 ≈ 11

what

在Android开发中,Hanldler消息机制可以说无处不在,主线程的调度,View,任务提交,IntentService,Messager中都出现了,可谓无处不在。handler消息发挥作用的包含了:Handler,Looper,Message,MessagerQueue,这四个重要组成。Handler发送消息,Looper开启轮询从MessageQueue中获取消息,交由Handler处理。

how

还是从一个使用者角度先了解,具体怎么用Handler吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private Handler mHandler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
doSomeThing();
break;
case 2:
doSomeThing();
break;
}
super.handleMessage(msg);
}
};

private void sendMessage() {
mHandler.sendEmptyMessage(1);
}

创键Handler对象,传入Looper,发送消息。再Hanlder内部处理消息,当然还可以直接发送Runnable,或者加入延时等。用法就这么简单。下面还是具体介绍吧

阅读全文 »

梳理一波Service

发表于 2019-07-06 | 分类于 Android |
字数统计: 2k | 阅读时长 ≈ 8

what

Android 四大组件之一,名为服务,可见与activity具有同等地位,看名字也只到,服务嘛,一般用于提供进行UI无关的等任务操作。和activity存在不一样,这家伙的存在是可以说是无声无息,甚至在有些流氓的软件中,你关掉了app,那还不一定关掉了服务[捂脸] ,不过这也正突出了service的特点,后台。开始知道是用来进行后台任务就行了,看看怎么用吧。

Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。

特别:Service默认也是在主线程进行的。所以也会有ANR风险。

阅读全文 »

梳理一波Activity基础使用

发表于 2019-07-03 | 分类于 Android |
字数统计: 1.1k | 阅读时长 ≈ 4

what

首先初学android第一个学的绝逼是Activity,翻译为活动,即看的见,摸得着的玩意。android SDK提供了一套模板类即Activity,开发者需要继承它,并且在对的时间做相应的事情,比如UI初始化,数据加载等等,通过在Manifest文件中声明这个新的Activity就可以了。这次就先不探讨Activity是怎么工作的,从应用的角度来看看它,(AMS还得再学习学习2333)。

how

无非就是创建类然后实现Activity,然后注册到Manifest中。可以了。

主要来看看Activity中重要的API吧。

阅读全文 »

Java 泛型

发表于 2019-07-02 | 分类于 Java |
字数统计: 2.2k | 阅读时长 ≈ 9

what

泛型我通俗的认为就是参数化类型,即传入类型提示。告诉它我即将要在这个类型的版本上使用你了。并且在写出大量代码时使用泛型可以写出一套模板代码。而且使用了泛型后,在编译期间泛型这个是能够检测你的代码有没有使用不规范类型的对象,在编译期间有点不好理解,但是当我们用IDE的时候,一旦你使用泛型,产生的对象,在IDE看来所给出的代码提示等检查也都是基于传入的泛型参数。但是呢,编译通过后在jvm中运行表现看来,所有用于参数类型的对象表现为Object, 这也俗称类型擦除。泛型参数不能时基本类型

阅读全文 »

Java 并发梳理

发表于 2019-07-01 | 分类于 Java |
字数统计: 5.3k | 阅读时长 ≈ 22
Java 并发 线程what:cpu调度的最小单位 创建方式: 继承Thread,实现重写run方法,创建Thread对象,调用start方法。 实现Runnable,实现run方法,创建Runnable对象,传入Thread对象,调用start方法 后文的中Callable 线程的状态:新建,可执行,执行,阻塞,死亡 yield只是让出cpu的使用权,下次还有可能抢占cpu 调用其它线程的join,当前线程会阻塞,知道那个线程执行完毕。 线程安全问题多线程访并发访问共享资源,会导致数据安全问题。 synchronized 加悲观锁通过synchronized添加锁,可以加载方法上和代码块上。在被锁起来的地方只会又一个线程进入,直到该代码执行完毕。该实现为jvm内置实现 123public synchronized void test(){}synchronized(obj){} 线程8锁问题: synchronized锁需要看锁的对象是谁,线程需要锁对象为同一个的情况下,进入了锁区域另外的线程就必须等待。 锁对象为普通对象 所对象为c ...
阅读全文 »

Java 反射

发表于 2019-07-01 | 分类于 Java |
字数统计: 519 | 阅读时长 ≈ 2
Java 反射 类加载器 反射 动态代理 what:在运行时加载某个类,获得某个类的相关信息,以及进行操作。 类加载器what:用于将节字码文件加载到JVM 启动类加载器:bootstrap,c++编写,jvm自带,负责加载rt.jar(runtime),无法直接获取,它是所有类加载器的父加载器 扩展类加载器:extension ,jdk_home/lib/ext目录下的jar包或者 -D java.ext.dirs指定目录下的jar包装入工作库 System ClassLoader :负责java -classpath或者-D java.class.path所指目录 下的类和jar包装入 委托、可见性以及单一性原理 委托:即子加载器会请求父加载器是否加载,并且加载,如果不能加载就交会子加载器,即自下而上请求,自上而下加载. 可见性: 子类加载器可以看到父类加载器加载的类,而反之则不行 单一性: 父加载器加载过的类不能被子加载器加载第二次 反射what:运行时获得类信息,注意是运行时。 Class:字节码在jvm存在形式即为Class的对象,是由jvm创建的。 运行时构造任意 ...
阅读全文 »
1234
hujie

hujie

慎独

34 日志
7 分类
7 标签
© 2019 — 2022 hujie
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4