
Android
文章平均质量分 96
Jere_Chen
如果你发现我的文章有错误,请毫无保留的指出,谢谢。因为这正是我写文章的目的,虚心请教!
展开
-
如何在Adapter中正确的使用Context
前言最近我在项目中,发现一个同事写 RecyclerView.Adapter 的时候都习惯定义一个全局的私有 mContext,然后在 onCreateViewHolder(parent: ViewGroup, viewType: Int) 方法中进行赋值操作 mContext = parent.context。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wzo0BlR5-1611468169753)(#pic_center)]第一次见到这样的写法,三种方式原创 2021-01-31 23:47:21 · 2172 阅读 · 7 评论 -
Android Volatile 关键字学习
面试官:你平时是怎么创建单例的?我:我一般用DCL双重检锁的方式来创建单例,然后为 instance 加上 volatile 修饰,防止 DCL 失效。面试官:那你可以具体说说 volatile 吗?我:行!前言相信很多 Andorid程序员跟我一样,最开始接触到 volatile 这个关键字是在创建单例的时候,如:public class SingleTon { //为了防止出现 DCL失效问题,加上 volatile 关键字 private static volatile.原创 2020-12-08 16:51:43 · 1028 阅读 · 0 评论 -
Android Synchronized 关键字学习
面试官:能说说Synchronized的作用吗?答:Synchronized 使用于多线程并发环境下,确保线程间互斥的访问同步代码;确保线程间的共享变量的可见性;还是避免重排序导致的问题。1. 多线程知识点回顾Java 并发的5条特性2. Synchronized 的使用方法2.1 修饰普通方法2.2 修饰静态方法2.3 修饰代码块...原创 2020-11-24 23:56:16 · 579 阅读 · 5 评论 -
Flutter 案例 实现 Wanandorid 客户端
本文分享利用Flutter实现 Wanandroid 客户端原创 2020-10-01 22:22:32 · 317 阅读 · 1 评论 -
Android Xml解析
1. 什么是XMLXML (Extensible markup language): XML是一种标记语言,用于存储与传输数据。是常用的数据传输方式,区分大小写,文件扩展名为.xml。XML定义了一组用于以人类可读和机器可读的格式编码文档的规则。XML的设计目标集中在Internet的简单性,通用性和可用性上。它是一种文本数据格式,并通过Unicode对不同的人类语言提供了强大的支持,被W3C所推荐。例如:<?xml version="1.0" encoding="utf-8"?>&原创 2020-07-31 20:13:17 · 3661 阅读 · 0 评论 -
Android刘海屏适配
代码生涯的第一个开源库,NotchAdapter 欢迎大家点评 Star1.前言自从2017年 iphone X 问世,刘海屏幕(Notch Screen)也开始流行。但是正如上图官方文档所介绍的,Android 官方是从 Android P (Android 9 API 28)开始才正式开始支持刘海屏幕的适配。也就造成了 “上面老大哥还没定好统一的规章制度,下面各个小弟已经开始各行其道了”的形象。所以针对 Android 手机刘海屏的适配方案,我们需要分为Android 9及以上与Androi.原创 2020-06-28 23:33:23 · 4172 阅读 · 0 评论 -
Android 网络请求是选择Retrofit + RxJava2 还是 Retrofit + Callback?
文章目录1.前言2.实例2.1 Retrofit + Callback2.2 Retrofit + RxJava23.总结1.前言在我们的App中,肯定需要通过网络请求从后台服务器获取一些数据,这时就需要用到网络请求框架,当下最流行的网络框架应当就是 Retrofit 网络框架了,我在实际项目中也都是使用 Retrofit,是采用 Retrofit + Callback的形式。我还以为大家都是...原创 2020-03-24 22:11:01 · 471 阅读 · 2 评论 -
我一次性为 Wanandroid 开发了Java与Kotlin两个版本
目录1. 介绍1.1 功能效果图展示1.2 项目设计模式2. 代码解析1. 介绍最近基于 Wanandroid开放API 开发了一款十分简单的APP,, 采用 Androidx + MVVM + Retrofit + dataBinding 的模式进行开发。App的主要功能是就是浏览各类 Android 文章,效果图如下所示:1.1 功能效果图展示1.2 项目设计模式该项目采用 M...原创 2020-03-21 13:59:21 · 569 阅读 · 3 评论 -
Android IntentService详解(源码分析)
1. 前言1.1 定义2.使用方法3.源码分析原创 2020-02-01 14:17:24 · 1933 阅读 · 1 评论 -
Android HandlerThread详解(源码分析)
1. 前言本篇文章是对 Android HandlerThread 类的学习,通过简单的例子,及分析源码来深入学习。同时例子将以 Java && Kotlin 两种代码形式展示。1.1 定义HandlerThread: 一个拥有 Looper 对象的线程。继承于 Thread 类,并拥有一个 Looper 对象,可以利用该 Looper 对象来创建 Handler 对象...原创 2020-01-28 22:39:19 · 552 阅读 · 0 评论 -
Android AsyncTask深入学习(源码分析)
之前有写过一篇博客,关于Android AsyncTask使用方法 AsyncTask 的使用方法,想着不能又是知其然不知其所以然的状态,本篇文章是对 AsyncTask 的深入学习。目录:AsyncTask 是一种轻量级的任务异步类,可以在后台子线程执行任务,且将执行进度及执行结果传递给 UI 线程。1. AsyncTask 官方文档介绍AsyncTask 的官方文档中有很详细的介...原创 2020-01-19 23:48:49 · 293 阅读 · 0 评论 -
Android Messenger初探
1. 背景最近在看任玉刚老师的《Android开发艺术探索》,看到了 Messenger,觉得挺有意思的,写个 Demo 练习一下,同时根据 Messenger 可以延伸到其他知识点,比如Android的Binder通信机制,AIDL等知识点,本文算是 Messenger 初探。1.1 Messenger 介绍首先肯定要看一下官方对于 Messenger 的介绍。/** * 引用 H...原创 2020-01-11 16:23:48 · 561 阅读 · 0 评论 -
Android Handler深入学习(源码分析)
1. 背景1.1 Message定义:Message 是包含着描述信息及任意数据对象的可发送到 Handler 的信息。/** * 定义包含着描述信息及任意数据对象的可发送到 Handler 的信息。额外包含可以不被分配的两个 * int 字段及一个 对象字段。获取Message最好的方法是调用 Message.obtain() 或 调用 * Handler.obtainMess...原创 2020-01-05 21:00:08 · 895 阅读 · 0 评论 -
Android 常用的数据存储方式(三)- Room Database
Google文档:https://developer.android.com/training/data-storage/room/上例子:在主页面输入用户的ID、姓名、地址点击save按钮保存到数据库,然后在第二个页面输入想查询的用户ID,点击Read按钮显示出来。效果图:User (我们的model, Entity)@Entity(tableName = "us...原创 2018-11-20 23:37:15 · 1262 阅读 · 0 评论 -
Android Handler使用方法
1. 定义Handler:子线程与主线程之间的沟通中介,用于传递消息。在 Android 中,为保证 UI 工作的线程稳定安全,规定只有主线程才能做 UI 的更新工作,在开发中,我们的 app 经常需要做一些网络请求的工作,从服务器拿取数据,然后将数据进行一些处理操作,最后通过 UI 呈现给用户。像这种耗时的操作,我们会额外先创建一个线程来处理,处理完成后,通知主线程作出相应的 UI 变...原创 2019-12-24 23:37:02 · 853 阅读 · 0 评论 -
Android 如何正确的重写 onDestroy() 方法
不知道大家在写 Android 的时候有没有遇到过这样的一个疑惑:当你在重写 onDestry() 的方法时,有没有犹豫过,我们自己的方法,是应该放在 super.onDestroy() 方法的上面呢?还是应该放在 super.onDestroy() 方法的下面呢?如下所示:@Overrideprotected void onDestroy() { //是将我们的方法放在这呢? ...原创 2019-11-27 22:17:23 · 12374 阅读 · 1 评论 -
Android Serializable及Parcelable使用方法
Android Serializable 及 Parcelable 使用方法#什么是序列化当我们需要在多个 Activity 之间传递对象时,我们不能直接传递对象的引用,我们应该对对象进行序列化,将对象转换成可传输的状态,然后放到 Intent 中进行传递。#SerializableSerailizable 是 Java 的一个接口,很容易实现,Java 在一定的条件下会自动帮我们去序列...原创 2019-11-24 10:39:43 · 365 阅读 · 0 评论 -
Android Studio常用的快捷键(Mac)
最近一个月都是用自己的笔记本开发,没有外设键盘与鼠标,这时候越发觉得 Android Studio 快捷键的方便之处,抽空总结了一下我自己常用的几个快捷键,分享给大家。关于搜索查看的快捷键 搜索当前类中的内容 cmd + F 搜索所有类中的内容(全局搜索) cmd + option + F...原创 2019-11-20 22:03:34 · 458 阅读 · 0 评论 -
Android Service & IntentService学习总结
目录1. Service介绍1.1 Service是什么,有什么作用2. Service生命周期3. 自定义Service例子3.1 观察Service生命周期3.2 绑定Service例子3.3 startService 与 bindService 的区别4. IntentService4.1 IntentService是什么4.2 IntentServi...原创 2019-08-05 20:17:46 · 496 阅读 · 0 评论 -
Android Firebase 学习与实践
本篇文章主要记录Firebase在Android上的学习实践,对Firebase进行实践与测试其在中国的使用情况、GCM迁移到FCM、及Firebase与Google Analytics 结合使用的测试,实验结果请看4.4 Firebase在中国能正常使用。参考文献就是Firebase官网,完整例子请看原创 2018-12-25 17:27:33 · 6114 阅读 · 5 评论 -
Android 多线程之线程池学习
目录1. Executor 是什么2. ExecutorService 是什么3.Executors 是什么4. ThreadPoolExecutor 是什么1. Executor 是什么package java.util.concurrent;public interface Executor { void execute(Runnable var1);...原创 2019-09-13 17:51:30 · 572 阅读 · 0 评论 -
Android Studio调试技巧
接触Android(以及Android Studio)即将四个月,接触了从零开始的项目也接触了开发了好几年的项目,当遇到一个BUG时,我发现我与老员工们之间的差距很大很大,他们能很快的找到问题的所在,一方面肯定是他们的经验所在,另外一方面就是Debug的技巧所在了,所以掌握IDE的调试技巧对于一个程序员来说真的十分重要。目录1. 调试窗口介绍2. 各类断点介绍2.1 ...原创 2018-07-28 11:50:53 · 1028 阅读 · 0 评论 -
Android SharedPreferences 使用方法详解
目录1. SharedPreferences 定义介绍2. SharedPreferences.Editor 方法介绍2.1 apply()2.2 commit()2.3 clear()2.4 remove()2.5 apply() 与 commit() 的区别3. SharedPreferences 例子Demo3.1 getPreferences() 例子...原创 2018-11-05 23:38:40 · 4839 阅读 · 0 评论 -
Android Retrofit例子Demo
暂不知怎么开头,直接上实践了,慢慢补充1.一个Retrofit的小案例Demo。首先得在build.gradle中添加Retrofit添加依赖,例如: implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.retrofit2:converter-gso...原创 2018-12-05 23:11:28 · 422 阅读 · 0 评论 -
Android 设计模式之观察者模式
目录1. 介绍1.1 定义1.2 作用1.3 优缺点2. 实践案例Demo2.1 利用Java内置的Observer/Observable2.1.1 实现方式2.2 自定义观察者/被观察者2.2.1 具体实现方式3.Android中包含观察者模式的组件源代码解析3.1 ListView中观察者模式解析4. 观察者模式与发布者/订阅者模式的区别1...原创 2019-06-20 00:15:44 · 940 阅读 · 0 评论 -
Android 设计模式之抽象工厂模式
前言:简单工厂模式:https://blog.youkuaiyun.com/jerechen/article/details/94064600工厂方法模式:https://blog.youkuaiyun.com/jerechen/article/details/94229028目录1. 定义2.抽象工厂模式的实践Demo1. 定义抽象工厂模式就是创建一个超级工厂来创建各类工厂,这个...原创 2019-07-08 21:03:51 · 437 阅读 · 0 评论 -
Android 设计模式之单例模式
目录1. 单例的定义2. 使用单例模式的目的3. 单例的几种创建方式3.1 单线程中运行单例3.2 多线程中的单例3.2.1 synchronized作用4. 测试5. Android Studio 快速创建SingleTon类6. 单例模式在项目中运用是好是坏1. 单例的定义保证此类只有一个自己创建的实例对象存在,并且提供全局访问该实例对象的方法。...原创 2019-06-24 23:55:34 · 437 阅读 · 0 评论 -
Android 设计模式之简单工厂模式
目录1. 工厂模式定义2.什么时候用工厂模式3. 简单工厂模式实践案例Demo4.简单工厂模式的优缺点4.1 优点4.2 缺点1. 工厂模式定义什么是工厂设计模式?: 根据名字解析“工厂模式”, 首先工厂是用来用来生产产品的,而且所生产的产品都是工人们根据仓库中现有的很多材料加工出来的。以玩具工厂为例,这个玩具工厂可以生产出上百种玩具,工人们...原创 2019-06-28 23:43:17 · 590 阅读 · 0 评论 -
Android 设计模式之工厂方法模式
关于简单工厂模式请上篇博客:https://blog.youkuaiyun.com/jerechen/article/details/94064600目录1. 定义1.1什么是工厂方法模式?1.2与简单工厂模式有什么不同?1.3 什么时候用工厂方法模式2. 工厂方法模式实践案例Demo3. 工厂方法模式的优缺点1. 定义1.1什么是工厂方法模式?定义一个创建产品对...原创 2019-06-29 23:57:10 · 781 阅读 · 0 评论 -
关于Android开发者必须知道的知识点(一)
今天突发奇想的想总结一下我个人认为,作为一个Android开发者必须知道的知识点。目录1. Context1.1 context是什么?1.2 context的作用是什么?1.3getContext().getBaseContext().getApplicationContext()以及this的作用和区别1.3.1 getApplicationContext()...原创 2019-07-16 23:54:15 · 431 阅读 · 0 评论 -
Android Intent详解
参考文献:https://developer.android.com/reference/android/content/Intent#developer-guides https://developer.android.com/guide/components/intents-filters.html#Receiving目录1.Intent是什么...原创 2019-07-27 14:50:20 · 414 阅读 · 0 评论 -
Android Broadcast & BroadcastReceiver学习
目录1. 什么是Broadcast &BroadcastReceiver1.1 Broadcast是什么?有什么作用?1.2 BroadcastReceiver是什么?什么作用?2.Broadcast的类型2.1标准广播2.2有序广播2.3 本地广播3. BroadcastReceiver的注册方式3.1 静态注册3.2 动态注册4. ...原创 2019-08-10 19:36:43 · 383 阅读 · 0 评论 -
Android MVC MVP MVVM简单例子
目录1. MVC MVP MVVM 间的区别1.1 MVC(Model-View-Controller)1.2 MVP(Model-View-Presenter)1.3 MVVM(Model-View-ViewModel)2. 例子Demo2.1MVC2.2MVP2.3MVVM1. MVC MVP MVVM 间的区别三者的区别如下图所示:1.1...原创 2019-08-24 23:26:14 · 3523 阅读 · 7 评论 -
Android 多线程学习
目录1. 什么是进程,什么是线程,两者有何区别2. 线程生命周期2.1 Android 主线程与子线程概念理解3. Java 多线程实例Demo3.1 继承Thread3.2 实现Runnable接口4. Android 多线程实现4.1 Handler实现4.2 HandlerThread实现4.3 AsyncTask实现4.4 IntentServi...原创 2019-08-31 14:06:08 · 285 阅读 · 0 评论 -
Android AsyncTask使用方法(防止内存泄露)
目录1.定义1.1 AsyncTask 的三个泛形参数1.2 AsyncTask的4个核心方法1.3 取消任务2. 简单Demo上手2.1 Java 版本2.2 Kotlin 版本3. AsyncTask 如何防止内存泄露1.定义官方解释:AsyncTask可以正确及方便地使用UI线程。此类允许您执行后台操作并在UI线程上发布结果,而无需通过操作Thre...原创 2019-09-07 14:03:51 · 1313 阅读 · 0 评论 -
Android Activity & Fragment 生命周期学习
目录1. Android生命周期图解1.1 动态观察生命周期状态1.2 生命周期文字详解1.2.1 备注2. Fragment的生命周期图解3. startActivityForResult()方法实践3.1 实现步骤4. onSaveInstanceState()来保存临时数据5. 怎么阻止Activity在切换横竖屏时销毁重建Activity1. And...原创 2018-06-06 00:25:25 · 476 阅读 · 0 评论