自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kongou的有顶天

我要一步一步往上爬,在最高点乘着叶片往前飞

  • 博客(71)
  • 收藏
  • 关注

原创 Android 类可以被引用到但是编译时报错Unresolved reference

android 不同module下的类可以引用,但是编译时报错找不到

2023-05-09 14:33:18 2822 2

原创 如何批量修改删除html文件中的标签属性

使用VS Code 批量删除html文件中描述标签

2023-04-27 15:32:38 1279

原创 如何获取到一个app里所使用的所有图标icon等资源文件

android反编译 获取到app使用的所有图标,icon等资源文件

2023-04-26 11:11:10 2017

原创 讯飞语音SDK集成调试常见问题

讯飞语音SDK集成常见问题汇总

2023-03-05 16:34:03 1177

原创 Android 从带有html标签的String字符串中提取网页链接url

Android 从包含Html标签的String字符串中提取超链接url并在app内部浏览器打开

2022-12-04 22:04:54 1504

原创 Android RecyclerView 两种以上ViewHolder显示错乱

列表分为两种类型,一种是样式一,一种是样式二,通过不同的tab切换列表。页面默认展示样式一,当点击tab进行切换成样式二时,发现展示的内容既有样式一又有样式二。展示内容错乱,且确认过代码,已经根据不同数据进行了刷新,按照逻辑应该全部展示样式二,没有混合显示的情况。

2022-11-08 10:20:09 1764

原创 Android手机如何查看UI渲染层级,过度绘制

在手机开发者选项里找到过度绘制显示控制选项,打开之后调试UI显示问题

2022-10-24 15:29:21 1570

原创 Kotlin 反射获取internal class中的成员变量LiveData并绑定观察

kotlin 使用反射获取Internal类里的方法及成员变量。获取internal activity class并跳转到该activity调用类的带参数方法调用带参数的构造方法获取internal 类的LiveData类型的成员变量并执行observe操作

2022-10-18 19:18:16 1157

原创 Android 引入库报错 Null extracted folder for artifact 解决方案

Android 引入库报错 Null extracted folder for artifact 解决方案

2022-09-21 14:59:33 7574 2

原创 Android项目出现了同一个依赖库的两个版本

Android项目同一个依赖库出现了两个不同版本

2022-09-13 15:18:24 2403

原创 The layout “xxx“ in layout has no declaration in the base layout folder

最近项目开发时候遇到了这样一个问题,同样的布局内容,一个没问题另一个就报这个错误。在网上搜索尝试了几个方法之后,最终得出结论。重启Android Studio可以解决!

2022-06-22 10:16:00 1337 1

原创 Android BroadcastReceiver 收不到消息

最近项目里用到了Android的BroadcastReceiver,之前做的项目UI部分内容比较多,所以四大组件其实真正好好用的场景很少。正好写一篇记录一下使用方法和注意事项。本文事例以Kotlin代码实现。简单点理解,BroadcastReceiver是一个广播接收器,用于接收匹配自己Action条件的消息。在使用时,有以下几点需要注意。1、定义/实现 BroadcastReceiver自己需要定义与实现自己的BroadcastReceiver,如:class MyBroad..

2022-04-26 15:10:51 5402

原创 Android groovy.lang.MissingMethodException: No signature of method 报错

今天遇到一个android项目里groovy.lang.MissingMethodException: No signature of method的报错。在网上看了半天没找出来错误原因。起因是因为修改了gradle文件的内容,之后重新编译同步项目就出错了。最后排查出了原因,是因为修改时一个方法的拼写错误导致的,导致一个代码块运行报错。所以这个问题,我的解决方法是,根据这个错误提示的代码行数,找到报错的代码块。仔细检查这个代码块包含的修改,一般就能找出错误原因,很可能是一些拼写等低级错误导致

2022-01-13 14:47:04 11164

原创 Android WebView 加载https网页白屏,空白解决方案

最近在做一个H5相关的需求,使用WebView加载第三方提供的https网页时显示白屏。但是调试打开Baidu和B站的https网址时就能正常打开。被这个问题困扰了半天。合作方说是android手机在访问https的网站是会要求有证书验证,通过重写WebViewClient里面的onReceivedSslError方法,去掉super.onReceivedSslError方法,使用handler.proceed()方法跳过验证步骤。后来经过在网上查询以及调试,解决方案为加上这句话。webSet

2021-10-28 17:13:35 3874 2

原创 Android sun.security.validator.ValidatorException: PKIX path building failed问题解决方法

本人Android开发,最近在更新自己公司项目私有库时遇到了如下报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested t

2020-05-22 18:45:51 2321

原创 OkHttp源码解析

OkHttp作为现在最主流的Android网络请求框架,其先进的设计思想是很值得学习的。今天就来从源码角度解读一下OkHttp网络框架的原理。首先来看看OkHttp网络框架特点。OkHttp 是一个高效的 HTTP 客户端,具有非常多的优势:能够高效的执行 http,数据加载速度更快,更省流量 支持 GZIP 压缩,提升速度,节省流量 缓存响应数据,避免了重复的网络请求 使用简单...

2019-07-22 21:56:51 243

原创 EventBus源码解析

EventBus作为一个事件处理分发总线框架,如今被广泛用于大大小小的企业之中。其能够如此之火,一定有它的特别之处。今天就来分析一下EventBus的原理。1、定义事件2、注册、注销与发送事件3、设置响应函数ThreadModeEventBus共包括4种模式:POSTING:在post所在线程执行 MAIN:在主线程(UI thread)中执...

2019-07-22 11:40:30 224

原创 RxJava2.0 源码解析

对于一些比较主流的开源框架,其中的一些源码还是需要去看,去了解的。以下基于个人视角,简单解读一下RxJava2.0的源码,挑一些比较常见的重要的地方进行解读。这一段常见的rxjava使用代码。从中可以看到一些基础的知识点。比如观察者与被观察者的绑定。rxjava的底层是基于观察者模式实现的。Observable是被观察者,Observer是观察者。Observer比...

2019-07-20 20:28:58 584

原创 Android约束布局

Android约束布局问世已经有一段时间了,对于最初的一些开发者来说,早已习惯了相对布局或线性布局的使用,基本上可以满足日常开发的需求。但是这样一来,约束布局不就没有它存在的意义了吗。从谷歌官方数据来看,约束布局在某些情况下表现要高于线性布局以及相对布局。其特点是层级单一,所有控件均处于同一层级。学习时参考了这篇文章,写的不错。带你了解Android约束布局ConstraintLayo...

2019-07-09 15:53:54 1244

原创 微信小程序基础总结

一、微信小程序生命周期在js文件中帮我们生成的生命周期函数有onLoad:页面加载onReady:页面初次渲染完成onShow:页面展示onHide:页面隐藏onUnload:页面卸载第一次来到页面A,onLoad--A,onShow--A,onReady--A。页面A切换tab到页面B,onHide--A,onLoad--B, onShow--B,onReady...

2019-07-06 14:46:42 266

原创 小程序开发心得

一、View的居左显示在wxss里可以设置样式与布局方式,position:fixed可以让控件居左,居上,居右和居下。通过left:50rpx;等设置居该位置以及距离。但是这种属于绝对定位,感觉不太灵活。fixed方式是严格定在屏幕中某一位置,如处在可滑动或变换的父布局内,则会显示异常,父布局移动而子布局定住。二、布局背景的阴影和圆角设置微信小程序边框设置bo...

2019-07-03 09:45:57 908

原创 微信小程序项目技巧总结

一、view的边框设置边框设置要使用border,对其样式,宽度颜色等属性进行设置后方可使用。阴影设置为box-shadow,一般也算入边框设置里。微信小程序border使用总结二、横线滚动布局微信小程序横向滚动布局scroll-view使用scroll-view用于小程序中滚动布局的设置。通过设置scroll-x、scroll-y属性确定展示方向。white...

2019-07-03 09:44:40 259

原创 Mac上MySQL数据库本地数据库表内容导出到另一个数据库

本地有数据库A和BA里有已建立表单数据,B为空。一、导出A数据库内容。1 从终端进入到存放导出数据库文件的目录,如/Users/xxx/mysqlspace2 执行语句mysqldump -u root -p database_name>sql_name.sql查看目录下有新文件生成就导出成功了。二、将表单内容导入到B数据库中1 打开MySQLWorkbench,...

2019-02-15 17:01:49 1397

原创 java.lang.abstractMethodError的错误解决

日常开发中,如果在打包后遇到过java.lang.abstractMethodError的问题,其中一部分,可能是混淆引起的。解决方法就是把提示报错的地方,通过-keep 的方式过滤掉,不让那些代码进行混淆。本人遇到的是一个RecyclerView使用时adapter中的getItemCount方法报错。原因是Adapter是内部类,而getItemCount是公共方法。getItemCo...

2019-01-29 18:27:03 49349

原创 基于一个异常捕获功能的知识点梳理

最近做的项目恰好需要捕获一个异常来解决一个崩溃问题,于是自己找了网上一个异常捕获的例子,几乎是原封不动的把人家的例子拿来用了。用归用,原理还是要知道的,于是写一篇文章来总结异常捕获涉及的知识点。原文链接:Android全局捕获崩溃异常记录日志一、如何捕获一个异常崩溃1、UncaughtExceptionHandler了解一下如上图,UncaughtExceptionHandle...

2018-12-13 16:51:57 301

原创 RecyclerView缓存机制

RecyclerView作为常用的列表类需求开发的控件之一,已经成为我个人开发项目时的首选。其扩展性要远强于ListView。RecyclerView的缓存机制通常也是面试必考的的内容之一,本文就此做一个整理。一、四级缓存如果说RecyclerView和ListView在缓存机制上有什么不同,一定要知道RecyclerView是四级缓存,而ListView是两级缓存。上代码其中,一...

2018-11-06 17:53:06 2026

原创 ASMDex实践总结

ASMDex字节码插桩技术是AOP编程中一个重要的知识点。ASM技术的优势在于代码侵入性小,使用方式灵活。缺点在于上手难度较大。下面针对ASM技术实践时遇到的一些问题进行总结。一、ASM使用原理android开发时,我们都知道,在打包过程中,是先将java文件编译成class文件,之后再把class文件编译成dex文件。如果我们想要对代码进行一些修改操作的话,可以在class文件打包成de...

2018-11-06 16:16:20 1202

原创 插件化开发遇到的问题汇总

插件化开发遇到的问题,大多数跟资源配置,包引用等相关,这些问题不算常见问题,但是在插件化开发中却有可能出现。因此也要记录下来做个总结。一、v7包的引用方式通常的导入方式为complie方式,这种方式是编译时和运行时都依赖。但是当在插件化开发中使用时,主站包往往引用了依赖,这时如果插件包仍然引用的话就会有冲突。因此在插件包使用一些支持包时,推荐使用provided方式,这种方式只有编译时...

2018-10-24 17:30:33 519

原创 Android中的进程保活

最近在看AIDL相关的知识,无意间看到一篇进程保活的文章,正好涉及到了进程相关的内容。顺便学习一下。原文地址Android中的进程保活一、什么是进程保活进程保活可以理解为让一个进程最大程度不被杀死,或者杀死后第一时间复活。二、进程的划分1、活动进程优先级最高,用户正在操作的程序,是前台进程,并且可操作。2、可见进程次高优先级,用户看得见,但是不能直接操作。3、服...

2018-10-11 16:37:34 462

原创 如果我是Android面试官十

一、Android 各版本新特性这个先开个坑,以后填。二、Android两种虚拟机Java提供了JVM虚拟机,而Android出于优化的考虑,又提供了自己的虚拟机Dalvik。JVM基于栈架构,每次取数据是从内存中取。Dalvik虚拟机是基于寄存器架构,每次去数据从寄存器中取,效率要比从内存中取要高。二者执行的字节码也不一样,java虚拟机是执行jar文件,而DVM虚拟机是...

2018-10-08 16:48:44 190

原创 Android分屏多任务带来的生命周期问题

前些日子发现的一个小问题,在使用Fragment的页面里,使用分屏任务,之后就会出现显示异常。追踪了生命周期,发现分屏时,会重新走Activity以及Fragment的生命周期。这就带来了问题。因为如果使用的是add的方式添加Fragment的话,就会每一次分屏都add一个fragment,这样就会造成显示上的异常。解决方案就是使用replace方式添加fragment,这样能够保证只有一个fra...

2018-10-08 16:23:05 1845

原创 如果我是Android面试官九

一、Android事件分发机制1、MotionEvent事件MotionEvent事件主要有以下三种类型,ACTION_DOWN、ACTION_MOVE、ACTION_UP。也就是手指按下屏幕,移动,再抬起。2、事件分发的三个重要方法MotionEvent事件最终是要发送到一个具体的View上去执行。而最终要在哪个View去执行,是由View的三个方法共同来决定的。1)publ...

2018-10-08 15:25:58 300

原创 Fragment的UI是何时绘制的

最近一个优化问题导致我不得不去思考一下这个问题。一、Fragment的onResumeFragment的生命周期是与宿主Activity关联的,这里只看onResume方法。因为Activity的绘制操作,是在onResume中进行的,所以想查看Fragment的绘制操作,还要追溯到onResume方法。上图是Fragment的onResume方法,看到非常简单,只有一行代码。但是...

2018-09-30 17:40:11 1098

如果我是Android面试官八

一、Application生命周期Application属于单例模式,只能创建一个。Application作用:1、定义全局属性和全局方法。2、在应用程序组件中传递对象。3、定义缓存Application的生命周期是整个程序最长的,它的生命周期相当于程序的生命周期。关于生命周期的方法有如下几个1、onCreate 程序创建时执行2、onTerminate 程序终止时执行...

2018-09-28 21:53:40 287

原创 LiveData是如何做到在合适的时机刷新的

项目的AAC框架改造也进行了一段时间了,对于谷歌新提出来的这一套JetPack框架,个人觉得还是相当不错的。好好使用,能够给开发带来很大的方便,对于以后的功能扩展也很有利。下面就来研究一下,JetPack中,LiveData是如何实现自动刷新的。一、LiveData是什么LiveData简单地说就是你的数据,只不过它会在发生变化时被监听到,从而根据它的变化做一些响应的处理,比如刷新UI等等...

2018-09-21 18:17:51 4113

原创 Android中单例模式的应用

单例模式在我们日常开发中或多或少都会遇见,使用场景也是多种多样。今天根据项目中需求,正好用到了单例模式。在此记录一下。一、跟随app存活有什么方式,可以让一个变量跟随app存活呢?是一个单例模式维护的静态工具类。静态工具类代码一般都使用单例模式来实现,可以防止建立多个,同时可以维护一个完整的类与其内部持有的变量。而java的代码是在类加载的时候才加载的,饿汉式单例能够保证在使用时才加载,可...

2018-09-17 12:01:59 487

原创 OkHttp网络框架的使用整理

最近的项目中,使用了OkHttp网络框架来上传数据。正好自己在网络这一块还不太熟,借此机会来整理总结一下。一、什么是OkHttpOkHttp是一个高效的HTTP客户端,通过它可以轻松地实现HTTP请求的发送。它有一些优点,但是具体是什么原理使它拥有这些优点,还需要后续对源码进行分析。二、使用方法1、GET请求OkHttp的请求,是围绕着OkHttpClient来进行的。一个请求...

2018-09-13 15:15:49 769

原创 RXJAVA的使用总结

前些日子在项目中引入了RXJAVA,也算是初步入门了RXJAVA的使用。使用起来感觉还是挺方便的,唯一需要注意的就是线程的切换以及调用的方法是否是在该线程应该使用的。如UI相关操作一定要在主线程中。一、什么是RXJAVARXJAVA是一个库,用来支持我们需求里需要异步操作的地方。它比起handler等异步操作的实现方式来说,显得更为简洁。把整个操作整合成一条流水线,从上游到下游都能够看的清...

2018-09-13 15:11:47 13231

原创 Android插件化开发过程中遇到的问题总结

最近接手的一个项目,是在插件分支里开发一个功能。但是写过demo之后,发现同样的代码在项目中运行不起来。在此过程中遇到的问题总结一下,以便以后遇到同样的问题直到问题出在哪。一、四大组件的注册四大组件的使用是一定要声明的,尤其是要在主站中声明。并且在插件化开发的过程中,确保你所新增的内容,在最新的主站包里都有对应的信息。不然是无法调用的。二、查看主站内容将app的apk解压缩,或生成...

2018-08-23 22:08:41 501

原创 Android中ContentProvider使用总结

最近一个小项目里用到了ContentProvider,这正好是我的薄弱环节,作为Android开发这么久,却很少接触ContentProvider的使用,正好借此机会学习总结一下。在谈及ContentProvider之前,我想最好还是先聊一下Android中的数据,SQLite,这样我觉得更体系一些。一、SQLite数据库SQLite是一款轻型数据库,是遵守ACID的关联式数据库管理系...

2018-08-17 15:48:13 1804

空空如也

空空如也

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

TA关注的人

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