自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 LRecyclerView 常见的错误分析及解决记录

最近开发的项目中在用 LRecyclerView ,但是项目由于使用的方法不恰当或者是 LRecyclerView 本身存在的一些问题,导致 APP 发生 crash,在此大致总结记录一下。首先我们要知道 LRecyclerView 的 Adapter 是 实际上有两个, 首先是内部自用方便 header 管理的 LRecyclerViewAdapter ,然后是我们实际上操作的 innerAdapter。 这种写法虽然巧妙,但是在使用中并不是很友好,有可能你需要同时调用两个 adapter 的 not

2021-02-05 15:17:16 394

原创 跳转 AccessibilityService 设置页面

引导用户开启 AccessibilityService 权限,跳转到无障碍设置页面高亮显示自己的 Service item:val EXTRA_FRAGMENT_ARG_KEY = ":settings:fragment_args_key";val EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":settings:show_fragment_args";startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)

2021-01-07 15:26:22 1033

原创 Android WebView 常用优化策略分析

2020-04-09 17:41:59 205

原创 使用AccessibilityService来备份 WeChat 好友信息

什么是AccessibilityService?  在开始之前我们先了解一下 AccessibilityService是一个什么东西;AccessibilityService 是一种提供用户界面增强功能的应用程序,可以帮助残障用户或者暂时无法与设备进行完全交互的用户提供界面反馈,帮助用户更好的处理和响应事件。通俗一点来说就是可以帮助我们监听页面的变化,比如按钮的点击,页面的切换,页面内容的变化...

2019-11-26 16:53:58 828

原创 Android Camera2 开发实践指南

 我们知道 Android 中相机开发是有两套 API 可以使用的,一个是 Camera,这个适用于 Android 5.0 以下,另外一个是 Camera2,这个适用于 Android 5.0 以上。但是这仅仅是系统的建议,其实开发中由于国内厂商对 Camera2 的支持程度各不相同,即便是 5.0 以上的手机,也可能对 Camera2 支持非常差的情况,我们可能还得降级使用 Camera ...

2019-01-17 21:43:39 2461 2

原创 迁移项目到 Android Studio 3.2 提示 mips64el-linux-android 异常

Android Studio 3.2 版本正式版在前段时间已经发布了,我个人是比较期待这个版本的,因为在这个版本之后,我们就可以使用官方架构组件 Android Jetpack了,Jetpack是Google为了开发者构建应用提供的一套组件、工具和架构指导。详细的更新说明请点击查看但是在今天把老项目使用Android Studio3.2.1版本打开的时候却构建失败了,提示异常为找不...

2018-11-14 15:51:05 647

原创 解决dagger和databinding冲突

升级 databing 和 dagger2 为最新版。。。没错,报错的原因就是因为旧版本同时使用apt注解生成器没有作区分的原因,新版本已经修复了这个问题。引入 databinding 的方式为:在我们的 application module 的 android 模块中设置dataBinding { enabled = true}就会自动引入与当前 gradle p...

2018-09-26 19:41:18 781

原创 CardView遇到的一点小坑

CardView在RelativeLayout布局中,如果和别的View有重合部分,如果需要CardView摆放在这个View后面,则必须把CardView的app:cardBackgroundColor="#00000000"设置为透明。如果想要这个View摆放在CardView前面,但是又不想把CardView的这个属性设置为透明,则需要把另外一个View也使用CardView嵌...

2018-06-26 20:42:16 4278

原创 简单分析一下CoordinatorLayout的Behavior机制以及其中方法的作用

Behavior从哪来Google 推出 Material Design 后,提供了Support Library ,而Behavior机制是其中 CoordinatorLayout的一种使其子View通过Drag、Fling或Gestures 等方式实现子View的各种交互效果而提供的一种实现方式。Behavior是什么见名知意,翻译过来就是行为的意思,对,简单来说就是控制一些子View的交互行...

2018-03-06 10:38:57 929

原创 浅析Android如何从不同的层次保证安全性

Android上的安全机制可以基本都是从两个方面来进行:1.应用沙盒2.权限约束先了解一下基本知识: Android是一个分层操作系统,由个4层组成,分别是:Linux Kernel、Native Userspace、Android Framework、Application Android的核心安全原则是,应用程序不应该损害操作系统资源、用户和其他应用程序。1.Lin

2018-02-04 19:11:04 875

原创 Android源码中的位运算

在看Android源码的时候经常可以看到 |=、&、~这样的符号,对于科班的人来说一般都会认识这些符号啦,就是位运算符嘛,但是现在对于非科班的就会有点蒙圈了,因为我们在学习的时候经常用的是&&、|| 这样的,但是它们变成单个去用的却几乎没遇到过,其实这种也是理解起来也是很简单的,因为这些符号就是将我们的常用运算转化成为二进制来进行运算的,目的就是为了加快运算速率,因为我们现在用的计算机系统使用的基

2018-01-14 12:51:18 828

原创 关于Android多渠道打包

如果你还不会的话,为什么不用walle呢? github地址:https://github.com/Meituan-Dianping/walle 美团点评开源的一个项目,教程很详细,一看就会,可以说是非常方便了。如果还是不会的话,如果想自己实现也不难,只需要在build.gradle中简单配置一下就可以了。在Manifest中添加渠道标识(名字可以自定义):<meta-data android

2017-12-29 13:50:39 1482 1

原创 解决Warning:android-apt plugin is incompatible with future version of Android Gradle plugin.

今天在导入google官方的dagger+mvp项目的时候遇见了一个错误,dagger不会自动生成DaggerAppComponent,查看的时候发现是有一个warning:Warning:android-apt plugin is incompatible with future version of Android Gradle plugin. Please use 'annotationPro

2017-10-23 19:06:33 4811

原创 android studio 提示:Unable to obtain result of 'adb version'

今天向往常一样打开android studio,build项目的时候突然弹出来一个这个: 什么玩意。。。无法启动adb server? 获取不到adb版本?

2017-09-26 17:17:39 3498

原创 关于计算机的一些名词或是概念

xx对xx透明:在计算机中,从某个角度看不到的特性就称这个特性是透明的,比如我们写代码的时候,变量的地址是由编译系统分配的,那么我们就称这个地址对我们是完全透明的,我们根本不知道变量的具体地址。与现实生活中理解的透明正好相反。。。好多人把 mac book pro 喜欢简称为 mac pro,其实是不对的,,这两个是完全不同的两个产品。。。DI 即 Dependency injection,依赖注...

2017-09-08 11:15:27 730

原创 LoaderManager的使用,替代传统的ContentResolver查询。

最近在阅读google samples 的时候发现项目里查询联系人并不是按照我以前写的方式实现到,要是我写到话应该就是getActivity().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);然后在得到Cursor,再去遍历…但是发现google dev

2017-09-06 21:50:58 565

原创 kotlin的一些学习和使用时遇到的问题

前段时间学习了一下kotlin,主要是通过这本书来学习的,这个是中文版下载地址: (https://github.com/wangjiegulu/kotlin-for-android-developers-zh) 这个网站是一个可以测试kotlin代码的,对学习kotlin也是挺有帮助的。 (https://try.kotlinlang.org) 也看了看这个,了解一下kotlin的常用...

2017-08-17 16:53:13 668

原创 System.loadLibrary()流程分析

在java代码中调用 System.loadLibrary(String fileName); -> System.java - loadLibrary(String fileName); -> Runtime.java - loadLibrary(String libName) -> loadLibrary(String libName,ClassLoader

2017-07-24 17:37:34 1299

原创 Android Studio导入Eclipse项目报错

最近在导一个eclipse项目的时候报了很多错误,在这记录一下。第一个是这个Execution failed for task ':app:processDebugResources'.com.android.ide.common.process.ProcessException: Failed to execute aaptaapt的全称是:Android Ass

2017-05-12 14:42:09 634

原创 AndroidBinder机制

Android BinderAndroid中为了保护操作系统中进程互不干扰设计了进程隔离机制,这个技术是为了防止进程A写入进程B的情况发生。进程隔离的实现,使用了虚拟地址空间,进程A的虚拟地址和进程B的虚拟地址不同,这样就防止进程A将数据信息写入进程B虚拟地址和物理地址是一种映射关系,程序中使用的都是虚拟地址Linux系统内存分为两个部分:内核空间和用户空间。内

2017-04-25 23:37:41 474

原创 activity之间传值,解决:Parcelable encountered IOException writing serializable object异常

今天写代码的时候遇到了两个activity之间需要传数据,本来是一件非常简单的事情平常都是使用 intent.putExtra(type,value);就没问题了。传对象的话就需要实现序列化接口了就行了。为什么要实现序列化接口,你可以当这个是android的一个机制,就是得这么办,不这么办不行。实际上实现序列化接口就是为了让数据能变成一种可存储或可传输的状态,可以传输到网络,也可以

2017-04-14 14:21:47 24812 4

原创 使用ContentResolver查询SD卡中特定的文件

如何使用ContentResolver查询sd卡中的任意文件

2017-03-29 15:38:52 5277 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除