Android
LilllS
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
几种导致内存泄漏的常见错误
几种导致内存泄漏的常见错误 Broadcast Receiver等未进行unregister 例如:当你在Activity中register broadcast receiver,假如你没有unregister the broadcast receiver,及时你关闭了Activity,仍然会持有Activity的引用 静态变量持有Activity、View或者大数据对象 例如:无论什么原因你生命...原创 2020-04-02 11:03:39 · 839 阅读 · 0 评论 -
EditText 修改光标颜色和宽度
在android的输入框里,如果要修改光标的颜色及粗细步骤如下两步即可搞定: 1.在资源文件drawable下新建一个光标控制color_cursor.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" an...原创 2018-07-27 16:12:48 · 5331 阅读 · 0 评论 -
使用Retrofit下载文件和上传文件
使用Retrofit下载文件和上传文件 上传 第一种 只有文件/图片的上传 /** * 上传图片 */ @POST("room/fileUpload") @Multipart fun upload(@Part file: MultipartBody.Part): Observable<ResMsg> private fun upload() { ...原创 2018-07-29 17:15:11 · 867 阅读 · 0 评论 -
Android 利用Annotation Processing 编译时通过注解自动生成代码
Android 编译时注解生成代码 类似ButterKnife的框架,时间有限只实现绑定View.利用 Annotation Processing,编译的过程中读取注解,然后使用JavePoet生成我们想要的代码 项目结构 依赖关系 左侧的的依赖是可以传递的 自动生成的代码 我们要自动生成这样的代码,代替我们findViewById的繁琐操作 public class MainActivit...原创 2018-09-27 15:42:35 · 1576 阅读 · 0 评论 -
OkHttp源码解析(一)
简单使用 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(&amp;amp;amp;quot;https://api.github.com/search/repositories&amp;amp;amp;quot;) .build(); //执行请求的地方. client.newCall(request) ...原创 2018-10-24 17:55:34 · 440 阅读 · 0 评论 -
OkHttp源码解析(二)之Interceptor
OkHttp中的Interceptors getResponseWithInterceptorChain() 继续说getResponseWithInterceptorChain()方法 Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. ...原创 2018-10-24 22:12:41 · 440 阅读 · 4 评论 -
Collections.synchronizedList使用方法
ArrayList 众所周知ArrayList是非线程安全的,在多线程的情况下,向list插入数据的时候,可能会造成数据丢失的情况.并且一个线程在遍历List,另一个线程修改List,会报ConcurrentModificationException(并发修改异常)错误. Vector Vector是一个线程安全的List,但是它的线程安全实现方式是对所有操作都加上了synchronized关键...原创 2018-10-26 16:40:58 · 26161 阅读 · 4 评论 -
使用Messenger进行跨应用(进程)通讯
使用Messenger进行跨进程通讯 Messenger可以翻译为信使,使用它我们可以进行跨进程通讯.Messengers是一种轻量的IPC,通过构造方法可以轻松的看出它的底层是现实AIDL. public Messenger(Handler target) { mTarget = target.getIMessenger(); } public Messenger(IBinder ta...原创 2018-11-01 12:07:44 · 665 阅读 · 0 评论 -
AIDL进行进程间通讯
AIDL进行进程间通讯 AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言 在上一篇 使用Messenger进行跨应用(进程)通讯中,使用Messenger进行进程间通讯的时候,服务端是能一个个的处理客户端的请求,如果有大量的并发请求的时候,Messenger就不适用了.并且Messenegr只能传递消息,并不能跨...原创 2018-11-02 11:29:50 · 402 阅读 · 0 评论 -
详解Handler机制
Handler详解 文中源码基于API 28,且部分有删减 Handler有什么用? 为什么要用Handler? Android应用程序运行时会创建一个主线程就是我们常说的UI线程,而更新UI的操作只能在主线程进行.但是实际开发中,一些网络请求和耗时操作都要到子线程中进行,获取到执行结果之后想去修改]UI是不行的,所以Android设计了Handler,通过消息的机制来实现线程之间的通讯. 为...原创 2019-11-14 20:27:55 · 326 阅读 · 0 评论
分享