![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 77
LLAiden
这个作者很懒,什么都没留下…
展开
-
HandlerThread使用及原理
个人纪录原创 2022-06-21 22:04:17 · 199 阅读 · 0 评论 -
LiveData从使用到源码
介绍LiveData 是一个可以在给定生命周期内观察到的数据持有者类。这意味着观察者可以与 LifecycleOwner 成对添加,并且只有当配对的 LifecycleOwner 处于活动状态时,才会通知该观察者包装数据的修改。如果 LifecycleOwner 的状态为 Lifecycle.State.STARTED 或 Lifecycle.State.RESUMED,则认为 LifecycleOwner 处于活动状态。通过 observeForever(Observer) 添加的观察者被视为始终处于原创 2022-03-02 21:56:58 · 169 阅读 · 0 评论 -
ViewModel使用到源码解读
介绍ViewModel 是一个类,负责为 Activity 或 Fragment 准备和管理数据。它还处理 Activity Fragment 与应用程序其余部分的通信(例如调用业务逻辑类)。 ViewModel 始终与范围(片段或活动)关联创建,并且只要范围处于活动状态就会保留。例如。如果它是一个活动,直到它完成。换句话说,这意味着如果 ViewModel 的所有者因配置更改(例如旋转)而被销毁,则不会销毁 ViewModel。新的所有者实例只是重新连接到现有模型。 ViewModel 的目的是获取和原创 2022-02-26 20:05:42 · 2310 阅读 · 2 评论 -
RecyclerView从使用到源码
基本使用 RecyclerView mRecyclerView = findViewById(R.id.mRecyclerView); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); List<String> list = new ArrayList<>(); for (int i = 0; i < 20; i++) {原创 2022-02-22 23:32:22 · 851 阅读 · 0 评论 -
WebSocket的简单使用
介绍WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输介绍完直接上代码服务端public class .原创 2022-02-11 22:17:30 · 2218 阅读 · 0 评论 -
MMKV使用及原理
基本使用implementation 'com.tencent:mmkv-static:1.2.9'MMKV.initialize(this);MMKV kv = MMKV.defaultMMKV();从上面存储函数的入参上我们发现了它其实也是用了key,value的方式对数据进行存储接下来我们看下一下存储方式这种存储方式其实就是上第一种存储方式的一种包装而已,但是做到与SharedPreferences调用方式上的基本兼容.与SharedPreferences比较SharedPref原创 2021-06-17 23:22:19 · 876 阅读 · 0 评论 -
EventBus源码阅读理解
EventBusAndroid中主流的事件传递库,简化我们代码中回调以及线程操作EventBus引入implementation 'org.greenrobot:eventbus:3.2.0'注册EventBus.getDefault().register(this);接下来我们看下这里是怎么注册的 public static EventBus getDefault() { EventBus instance = defaultInstance; if原创 2020-08-19 19:19:12 · 117 阅读 · 0 评论 -
Android系统与开发相关的新特性
Android 6.x运行时权限Android7.xFileProvider应用件文件共享添加JIT动态编译,部署应用加快引入v2签名策略Android8.x通知多渠道,通知细分、通知红点、通知延后后台服务、广播执行限制蓝牙功能提升Android9.x所有应用都使用HTTPS多摄像头支持开发人员可以使用多摄像头API同时访问来自2个物理摄像头的流android 10引入完全手势导航,消除导航区域安全和隐私提升...原创 2020-08-18 21:20:10 · 129 阅读 · 0 评论 -
ARouter浅析
ARouterARouter是:阿里巴巴自研路由框架,主要解决组件间、模块间的 界面跳转 问题。基本使用首先按步骤引入这个库ARouter ARouter.getInstance() .build("/module_second/second") .withString("data", "通过ARouter打开的Activity") .navigation();@Route(path =原创 2020-08-18 00:54:25 · 191 阅读 · 0 评论 -
网络框架Okhttp源码解析
前言前面我们看到Okhttp通过线程池执行我们的网络请求现在我们看一下这个请求在这个线程池中是怎么执行的先上代码 @Override public void enqueue(Callback responseCallback) { synchronized (this) { if (executed) throw new IllegalStateException("Already Executed"); executed = true; } capt原创 2020-08-16 18:15:41 · 92 阅读 · 0 评论 -
OkHttp基本使用和内部基本原理
Okhttp是什么Okhttp是Java上很流行的一款网络情况框架,由square出品基本使用 String url = "http://co-api.51wnl.com//Calendar/GetStar?starName=aries&client=ceshi&token=7AFA7AC511153E696C09D04F94816CB1"; Request request = new Builder().url(url).build(); Ok原创 2020-08-14 23:22:39 · 583 阅读 · 0 评论 -
Android中Looper.loop()为什么不会ANR呢?
ANR是什么Application Not Responding即应用无响应ANR怎么造成的造成ANR通常是事件没有及时处理完成引起的Android中点击事件在5秒内没有得到处理就会造成ANR这个5秒的时间呢则是在ActivityManagerService.java中定义的static final int KEY_DISPATCHING_TIMEOUT = 5*1000;Android中广播也会造成ANR,广播的超时又分为两种分为FG(10s)(和BG(60s)这个时间呢同样是在A原创 2020-08-14 21:59:25 · 432 阅读 · 0 评论 -
Android下Handler分析
介绍Handler是Android应用内通讯组件,可实现线程间的通讯如子线程获取网络数据须在主线程更新UI使用,Handler通讯由现在虽然不流行这样的方式但是我们还是需要了解其内部的原理组件介绍Handler(消息发送接收)Message(消息体)MessageQueue(消息队列)Looper(轮询器)Handler private Handler handler = new Handler(Looper.getMainLooper()) { @Overrid原创 2020-08-14 20:39:31 · 163 阅读 · 0 评论 -
Android 获得可用摄像头id
int cameraId = -1;int numberOfCameras = Camera.getNumberOfCameras();for (int i = 0; i <= numberOfCameras; i++) { Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(i,...原创 2019-03-27 19:23:44 · 67319 阅读 · 4 评论