![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 81
yxhuangCH
Android 开发
展开
-
[Android Studio]android studio missing essential plugin
解决 android studio missing essential plugin原创 2023-03-02 09:05:22 · 260 阅读 · 0 评论 -
Tealium 分析
源码在: https://github.com/Tealium/tealium-kotlin官方文档:https://docs.tealium.com/platforms/getting-started/说明:① new 一个 TealiumConfig, 进行 Tealium 的一些配置② 将一个 TealiumConfig 配置传入,创建一个 Tealium,可以有多个 Tealium, 内部使用 map 存储起来,同时还可以传入 onReady, 在 Tealium 初始化可以的时候进行回调③原创 2022-12-05 22:54:45 · 993 阅读 · 0 评论 -
Espresso Test 8: Test Rule
这是 Espresso UI 测试系列的第八篇文章。这篇主要是讲述 idling resources 在 debug 和 release 中设置,TestRule 的设置 的测试。原创 2022-11-04 11:38:39 · 410 阅读 · 0 评论 -
Espresso Test 7: Idling resource
这是 Espresso UI 测试系列的第七篇文章。这篇主要是讲述 idling resources 的测试。原创 2022-11-04 11:37:06 · 368 阅读 · 0 评论 -
Espresso Test 6: RecyclerView
这是 Espresso UI 测试系列的第六篇文章。这篇主要是讲述 RecyclerView 的测试.原创 2022-11-04 11:35:31 · 296 阅读 · 0 评论 -
Espresso Test 5: Toast
这是 Espresso UI 测试系列的第五篇文章。这篇主要是讲述 toast 的测试.原创 2022-11-04 11:34:12 · 263 阅读 · 0 评论 -
Espresso Test 4: Intent
Espresso原创 2022-11-04 11:33:03 · 684 阅读 · 0 评论 -
Espresso Test 3: Fragment Test
这是 Espresso 的第二篇,Fragment 的 UI 测试。它包括两部分内容, 一是测试 fragment 的 UI 测试,另外一部分是 fragment 的跳转测试。页面是一个电影介绍页。原创 2022-11-04 11:31:38 · 557 阅读 · 0 评论 -
Espresso Test 2: Espresso_simple
Espresso原创 2022-11-04 11:28:47 · 383 阅读 · 0 评论 -
Espresso Test 1: 前言
Espresso原创 2022-11-04 11:27:17 · 205 阅读 · 0 评论 -
Kotlin|Kotlin反射
文章目录1. Kotlin 反射1.1 Kotlin 反射类图2.创建实例无参构造有参构造说明例子3.通过反射调用方法 KFunction4. 通过反射获取属性5.获取实例的 companion6. 获取注解7.获取内部类8.完整的代码1. Kotlin 反射Kotlin 的反射需要集成 org.jetbrains.kotlin:kotlin-reflect 仓库,版本保持与 kotlin 一致。implementation "org.jetbrains.kotlin:kotlin-reflect:原创 2021-08-01 09:42:12 · 1730 阅读 · 1 评论 -
读书笔记|《程序员的自我修养》- 04 可执行文件的装载与进程
文章目录一.装载的方式二.装载的过程2.1 创建一个独立的虚拟地址空间2.2 读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系2.3 将 CPU 的指令寄存器设置成可执行文件的入口地址,启动运行三.堆和栈四. Linux 内核装载 ELF 过程这一章讲述了操作系统入口将 ELF 文件装载到内存的过程。一.装载的方式程序在运行时有局部性原理,可以将程序最常用的部分驻留在内存中,将不常用的数据存放在磁盘里。加载的时候采用页映射的方式,也映射就是把部分程序的数据和指令按“页(page)” 为单位划原创 2021-05-06 22:35:56 · 142 阅读 · 0 评论 -
读书笔记|《程序员的自我修养》- 03 静态链接
读书笔记|《程序员的自我修养》- 03 静态链接这是《程序员自我修养–链接、装载与库》读书笔记的第三篇,静态链接。简单来说静态链接将多个目标文件性质相同部分,合并写入到输出目标文件中,然后将符号解析并且对外部引用符号重新定位。目标文件的链接分为静态链接和动态链接。静态链接是以多个重定位目标文件和命令参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件的过程。这个过程由链接器完成,链接器主要的任务就是符号解析(sysbol resolution) 和重定位(relocation)动态链接原创 2021-05-06 22:32:25 · 168 阅读 · 0 评论 -
Android 动态链接库 So 的加载
前言最近在做 Android 项目的时候,需要在 NativeActivity 中动态加载 so 。运行的时候,抛出了异常Caused by: java.lang.IllegalArgumentException: Unable to find native library using classloader: dalvik.system.PathClassLoader在 Nativ...原创 2020-03-28 12:48:27 · 1952 阅读 · 0 评论 -
利用 ItemTouchHelper 实现 RecyclerView 的侧滑删除
利用 ItemTouchHelper 可以实现 RecyclerView 的侧滑删除和滑动。原创 2017-03-26 23:04:04 · 562 阅读 · 0 评论 -
从屏幕底部弹出PopupWindow
最近因为要用到PopupWindow,所以,就在网上搜索了一下,发现挺多关于这样的文章,现在我把它们整理了一下。 1、Android PopupWindow 的使用技巧,http://www.cnblogs.com/sw926/p/3230659.html2、Android PopupWindow 的使用和分析,http://www.cnblogs.com/mengdd/p/356912原创 2015-01-11 21:59:23 · 20724 阅读 · 11 评论 -
Tinker 的接入
Tinker 的接入本文是基于 Tinker1.7.11 版本接入Tinker 项目地址:https://github.com/Tencent/tinker Tinker 是微信团队开源的热修复框架,最近了解了一下, 参考例子:https://github.com/TinkerPatch/tinkerpatch-sample; 接入文档:http://tinkerpatch.com/Docs/原创 2017-07-17 16:51:32 · 481 阅读 · 0 评论 -
【拆轮子系列】RxJava2 源码简要分析
RxJava1 已经在项目中用来一年多了,最近准备转换成 RxJava2, 除了去了解 2.0版本的不同 ,还简单的去了解了一下源码,顺便做个记录。 对源码的分析,原创 2017-06-20 22:45:38 · 1317 阅读 · 0 评论 -
Gradle for Android 简要记录
Gradle 有约定优于配置的原则,即为设置和属性提供默认值。Gradle 是基于 Groovy 领域专用语言 DSL.在 Gradle 中,最重要的两个概念是项目和任务。每一次构建都包括至少一个项目,每一个项目又包括多个任务。每个 build.gradle 文件都代表着一个项目,任务定义在构建脚步里。原创 2017-05-30 11:36:33 · 597 阅读 · 0 评论 -
Jenkins Android 集成
在 window7 本机环境下用 Jenkins 对 Android 集成打包。本文综合 Android Jenkins+Git+Gradle持续集成-实在太详细 和 利用Jenkins玩转Android自动打包发包 这两篇文章而成。原创 2017-06-03 21:26:41 · 955 阅读 · 0 评论 -
android 中的注解
Android 中的注解在项目中挺实用的,很多时候可以替换枚举型的数据。原创 2017-05-07 15:04:15 · 495 阅读 · 0 评论 -
JavaPoet 和 Java 注解在 Android 中的应用
JavaPoet 结合 Java 注解在很多知名的开源库中都应用,例如 Butterknife 和 ARouter. JavaPoet 是用来生成 .java 文件的,它的使用比较简单,按照官方的示例代码套用就可以了。 Java 的注解,有时间会整理,这里先略过。我做了一个 Dome 说明它们的应用。 先看一下项目的结构。 整个项目包含三个部分: - app : 主项目,使用我们...原创 2018-09-10 07:31:51 · 719 阅读 · 0 评论 -
Java 注解
Java 注解了解 Java 注解,对于我们了解 JavaPoet, ARouter, Butterknife 这些开源库是必须的。 同时也可以结合 Android 中独有的注解,一起看,会加深理解。我之前写过 Android 中的注解 一文。以下是正题:注解是那些插入到源码中使用其他工具可以对其进行处理的便签。这些工具可以在源码层次上进线操作,或者可以出来编译在其中放置了注解的类...原创 2018-09-12 23:25:49 · 156 阅读 · 0 评论 -
ReentrantLock、synchronized 与 ReadWriteLock
ReentrantLock、synchronized 与 ReadWriteLock一. ReentrantLockReentrantLock 并不是内置锁 synchronized 的替代方式,而是当 synchronized 加锁机制不适用时,作为一种可选择的高级功能。ReentrantLock 是 Lock 的实现类,Lock 提供无条件的、可轮询的、定时的以及可中断的锁获取操作,所有...原创 2019-01-07 22:31:39 · 203 阅读 · 0 评论 -
Glide 源码简要分析
一、前言Glide 是 Android 比较好的图片加载库,最近的项目中使用到了,所以有必要去了解一下 Glide 的源码。Glide 的源码非常多,不可能所有的东西都去了解,所以结合 郭霖的博客 对 Glide 的源码做了简要的分析。对 Glide 的了解,主要想解决一下的几个问题:Glide 加载图片的流程Glide 加载图片流程的监听回调Glide 是如何感知...原创 2019-02-23 17:55:20 · 326 阅读 · 0 评论 -
AspectJ 在 Android 中的使用
AspectJ 在 Android 中的使用在介绍 AspectJ 之前,我们先看看常见的几种编程架构思想。面向对象编程 Object Oriented Programming面向过程编程 Procedure Oriented Programming面向切面编程 Aspect Oriented Programming面向对象、面向过程、面向切面, 这三种是我们常见的三种编程架构思想,...原创 2019-06-29 19:14:14 · 4476 阅读 · 0 评论 -
Android 中使用 Aspectj 限制快速点击
Android 中使用 Aspectj 限制快速点击在AspectJ 在 Android 中的使用中,介绍了 Aspectj 的基本知识及其在 Android 中的基本使用,在这篇将会介绍如何使用 Aspectj 在 Android 中限制快速点击1. 配置依赖建立 clicklimt 的 lib,添加对 Aspect 的依赖,之前我们要做很多的配置工作,沪江的开源库 gradle_plug...原创 2019-07-06 16:36:43 · 1289 阅读 · 1 评论 -
Android 中使用 APT
APT(Annotation Processing Tool)注解处理器,是一种处理注解的工具。APT 在编译时期扫描源代码中的注解,开发中根据注解,利用 APT 自动生成 Java 代码,减少冗余代码和手动的代码输入,提高编码效率。APT 中的数据类型和概念1. ProcessingEnvironment在复写 AbstractProcessor 的 init 方法时,参数就是一个 Pr...原创 2019-07-24 09:13:57 · 1179 阅读 · 0 评论 -
State 状态模式在 Android 多弹窗的应用
序言最近项目的首页弹窗进行调整,要加几个弹窗,而且还是要按顺序弹出的。原来的只有悬浮窗权限弹窗和存储权限弹窗,用一两个标志位就可以解决了。现在加了隐私协议弹窗和青少年模式弹窗,变成了四个弹窗,如果还是按照原来的方法,即加标志位解决,逻辑机会变得非常复杂,也很容易出 Bug.经过调研,发现可以用 state 转态模式去解决这个问题。下面我们先看看 state 转态模式State 状态态模式...原创 2019-08-25 14:55:40 · 190 阅读 · 0 评论 -
Android控件的拖动
Android控件的拖动,主要是通过设置控件的setOnTouchListener()方法,重写它的onTouch()方法。然后通过MotionEvent的不同事件,进行判断,主要是在MotionEvent.ACTION_MOVE中不断重绘控件在画布中的位置,而实现拖动的效果。 public class DragViewActivity extends AppCompatActivity {原创 2015-09-19 14:01:02 · 660 阅读 · 0 评论 -
调用 android 系统拍照结合 android-crop 裁剪图片
在一个应用中更换用户的头像,一般有拍照和从图库中选择照片两种方法,现在网上也有很多开源的,但是很多都太复杂。而 Android-crop 这个库比较小,代码不复杂,比较适合,但是它没有拍照这个功能,需要我们自己整合进去。调用系统相机拍照原创 2017-01-15 16:02:09 · 6948 阅读 · 5 评论 -
【读书笔记】Android 输入系统
本文是综合 《深入理解 Android 卷 III(第五章 深入理解 Android 输入系统)》 《Android 系统源代码情景分析(第 14章 Android 应用程序的键盘消息处理机制)》 《深入解析 Android 5.0 系统(第 16 章 Android 的输入管理)》 三章的总结。一、输入系统的总体流程. Linux 内核 接受输入设备的中断,并将原原创 2016-12-20 00:10:49 · 1282 阅读 · 0 评论 -
【读书笔记】【Android 开发艺术探索】第 2 章 IPC 机制
一、基础知识1.一些概念IPC : Inter-process Communication 跨进程通信,是指两个进程之间进行数据交换的过程。线程:线程是 CPU 调度的最小单元,同时线程是一种有限的系统资源。进程:一般是指一个执行单元, 在 PC 和移动设备上指一个程序或者一个应用。 进程可以包含多个线程。2. Android 中的多进程模式(1).开启多进程模式原创 2016-05-02 16:07:05 · 720 阅读 · 0 评论 -
【读书笔记】【Android 开发艺术探索】第 9 章 四大组件的工作过程
一、Activity 的工作过程以应用的角度出发,Activity 分两类根 Activity:根 Activity 一快捷图标的形式显示在应用程序启动器中,它的启动过程代表了一个 Android 应用程序的启动过程。子 Activity:子 Activity 由根 Activity 或者其他子 Activity 启动,它们启动可能与启动他们的 Activity 运行在同一个进原创 2016-05-25 22:10:51 · 630 阅读 · 0 评论 -
【读书笔记】【Android 开发艺术探索】第 6 章 Android 的 Drawable
Drawable 常被用来作为 View 的背景使用,一般使用 XML 文件定义。Drawable 的内部宽/高,可以通过 getIntriniscWidth 和 getIntrinscHeight 获取。 分类 常用的BitmapDrawable<bitmap xmlns:android="http://schemas.android.com/原创 2016-03-12 16:11:57 · 496 阅读 · 0 评论 -
【读书笔记】【Android 开发艺术探索】第11章Android 的线程和线程池
在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不肯能无限制地产生,并且线程的创建和销毁都会有相应的开销。 Android 的线程分主线程和子线程。主线程主要处理和界面相关的工作,子线程,也被称为工作线程,执行耗时工作。 Android 中的线程形态除了 Thread 外,还包含 AsyncTask、Handler 以及 Inten原创 2016-02-14 15:11:23 · 509 阅读 · 0 评论 -
【读书笔记】【Android 开发艺术探索】第1章 Activity 的生命周期和启动模式
一、Activity 的生命周期分析 典型情况下的生命周期和异常情况下的生命周期。 1、典型情况下的生命周期 onCreate : 表示 Activity 正在被创建。在这个方法做一些初始化的工作; onRestart : 表示 Activity 正在重新启动。 一般情况下,Activity 从不可见变成可见状态时,回调用;onSta原创 2016-02-25 22:11:02 · 626 阅读 · 0 评论 -
Android 自带的DownloadManager 在Service 中下载 apk 安装
在Android 中如果请求网络,数据量小的时候,可以使用Volley 库,但是如果是下载数据非常大时,变的不可行了。这时我们可以使用Andoid 自带的 DownloadManager ,只要是api 9以上都可以用。网上也有很多例子,但是大部分都是放在Activity 中,这样带来很多的不便。当我们下载大文件时必须在这个界面。所以,我就根据网上的例子,自己改造了一下,把下载放在Service原创 2016-01-09 22:41:34 · 4859 阅读 · 0 评论 -
RecyclerView 以及 ItemClickListener的实现
RecyclerView 的一些基本知识点,可以去官网上查看到。现在这些只是个人的一些笔记而已。 1.Item 位置 ---------- LayoutManager Item 分割线 --------- ItemDecoration Item 动画效果 ------- ItemAnimator 2、自定义分原创 2015-09-19 11:35:30 · 830 阅读 · 0 评论 -
ViewPagerInFragment 在Fragment中使用ViewPager
平时,我们都是在Activity中使用ViewPager,其实我们在Fragment中使用Fragment. 这是整个工程下的Java文件,其中SingleFragmentActivity是通用类,MainFragment就是包含ViewPager的Fragment;WeixinFragment、FriendFragment、AdrressFragment、SettingFr原创 2015-04-06 21:45:55 · 1260 阅读 · 0 评论