自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

“点点”专栏

相信点滴的力量,相信每天天一点点的努力。。。。。。

  • 博客(324)
  • 资源 (6)
  • 论坛 (5)
  • 收藏
  • 关注

原创 Xposed为啥hook不到

奇怪的问题写好hook代码后,发现在有些包上hook不到,奇怪,后来发现是混淆导致的,hook了一个混淆之前的类,混淆之后找不到这个类,Xposed报错了,后面的代码就不执行了,所以,hook代码一定要注意混淆没混淆。把可能找不到的类代码try catch一下注意!!!!try{ }catch(Throwable e){}catch 的是Throwable,而不是Exception,因为de.robv.android.xposed.XposedHelpers$ClassNotFoundError实

2021-10-19 16:50:49 9

原创 Android权限的一些问题和理解

Android权限的处理,使用官方提供的permissions.dispatcher包处理,是很简单的,我们只需要在各种时机回调中实现业务代码就可以了。比如,权限被禁止的时机也是有的。看看几个概念的说明文章,方便理解Android 动态权限中shouldShowRequestPermissionRationale怎么理解,判断权限被禁止...

2021-10-11 16:06:01 35

原创 Can not perform this action after onSaveInstanceState

在onActivityResult中commit fragment会报错,可以在主线程的下次消息中再commit从源码角度理解Can not perform this action after onSaveInstanceState异常

2021-09-09 10:38:43 9

原创 自动化测试和监控的理解

概念首先,说明一下测试和监控这两个概念,它们既是独立的也是有联系的。测试就是对app进行一些操作,看app行为表现和运行性能是否正常,行为表现和运行性能本身就是我们要监控的内容,因此,测试是发出操作指令,监控是捕获操作指令的结果,也就是app行为表现和运行性能,所以说测试和监控是相辅相成的。测试对于Android来说,是有很多测试工具的,具体可以看Android 手机自动化测试工具有哪几种? 。这里面说的自动化是指能按照事先编好的代码逻辑执行一系列的操作,模拟用户操作,这个只是一种局部意义上的自动化,

2021-08-27 15:54:07 19

转载 安卓framework开发的初理解

参考:Android framework层JNI的使用浅析我眼中的Android FrameworkAndroid Framework中的Application Framework层介绍Android Framework架构原理学习之AndroidApp启动认识EIT造形—android 架构概述其实我们写的App并不是一个完整的程序。我们写的只是一个套件组,就是一堆Activity,Service等等的组件。这个套件组给Framework框架组合在一起才是一个完整的程序。在这里先说一个概念,

2021-08-26 10:16:55 9

原创 Toast的理解和实践

Toast在我们实际开发中很常用,而且很简单,但是实现原理还是挺复杂的,只是系统帮开发者封装好了,让开发者觉得很简单。Toast是所有app都得用的,系统为了协调各种app的toast需要,那么就得系统管理,和系统需要管理所有Activity道理差不多,有个NotificationManagerService,通过对Toast源码需要,我们可以需要到怎么用两个Binder的方式,实现进程间的彼此通信。具体原理可以看Toast源码解析。需要说明的是,每个版本对Toast的源码都是有改动的,所以导致我们在定制

2021-08-24 15:08:50 11

原创 从一个异常堆栈学习java的lambda表达式

2021-08-13 10:22:14.464 12589-12589/com.sohu.sohuvideo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.sohu.sohuvideo, PID: 12589 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null obj

2021-08-13 11:15:32 21

原创 iOS与JS交互的4中方法

iOS与JS交互的4中方法

2021-08-13 10:41:31 10

原创 大数据分析常用组件、框架、架构介绍(Hadoop、Spark、Storm、Flume、Kafka、Logstash、HDFS、HBase)

大数据分析常用组件、框架、架构介绍(Hadoop、Spark、Storm、Flume、Kafka、Logstash、HDFS、HBase)

2021-08-13 10:39:28 31

原创 LiveData使用不当,导致的内存泄露

发现内存泄露AS Profiler提供了内存泄露检测工具,简单方便,这里不介绍使用,网上教程很多。我看看内存泄露这个Fragment泄露了6次看这两行,知道是给LiveData传入的观察者导致的泄露,可是为啥呢?得看看它被谁持有了。这块就涉及到了LiveData的实现原理,其实实现也简单,大家应该去学习一下。这块就简单说一下,每一个宿主(Activity/Fragment)都会有一个Lifecycle的实现,也就是LifecycleRegistry,它里面是有map用来存放需要感知生命周期的观

2021-08-10 10:28:54 111

原创 Fragment的学习和思考

一个异常的分析A activity跳转到B activity,然后又返回到A activity,在A activity的onActivityResult中,给A添加一个Fragment,由于在Fragment的onCreateView方法中有个异常,导致了崩溃07-15 15:48:44.699 3430 3430 D AndroidRuntime: Shutting down VM07-15 15:48:44.702 3430 3430 E AndroidRuntime: FATAL EXC

2021-08-06 17:10:51 10

原创 ImageView ScaleType解惑

在开发中很常用,可是总是搞不明白,网上讲的也是乱七八糟ImageView的scaleType详解这篇文章讲的可以,可是,还有有问题。center、centerCrop和centerInside解释的没问题,可是fixCenter、fixStart和fixEnd解释的就有问题,也可能是英文本身就有问题。不过,例子展示的没问题。Android中ImageView centerInside与fitCenter区别这篇文章说明白了centerInside和fitCenter的区别在实际开发中,如果我们想让

2021-07-16 15:17:36 7

原创 Elasticsearch、Logstash和Kibana ELK技术栈

[理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER](https://blog.csdn.net/g19920917/article/details/25561169)[]

2021-07-15 12:28:27 23

原创 ConstraintLayout使用总结

app:layout_constrainedWidth="true" android:layout_width="wrap_content" android:layout_width="0dp"效果是一样的,可以自动充满剩余空间约束布局ConstraintLayout看这一篇就够了哲♂学三幻神带你学习ConstraintLayout(约束布局)...

2021-07-09 16:15:22 28

原创 逐步了解Fragment的全貌

Fragment是什么用代码实现的东西,非得用语言给抽象出来让人理解,本身就很怪,因为你还是不是到它到底是个什么。最好的方式还是去阅读源码,当然,阅读源码并不一定,一次性就要深入都懂了,可以随缘的认识,比如先初步了解个大概,以后有时间有兴趣或者遇到问题了再进一步了解一下。要想了解个大概,可以看下面这篇文章,整体上能了解Fragment是个啥。Android 进阶17:Fragment FragmentManager FragmentTransaction 深入理解其实Fragment就是对View的

2021-05-27 15:15:42 13

原创 Gradle之cache的问题(没解决)

先了解一下cache的基本概念Android 手动下载Gradle的cache依赖包gradle缓存位置及拷贝jar到maven资源库上面两篇文章,我们知道gradle会把下载的包缓存到到.gradle/caches/modules-2/files-2.1目录下,而且知道了目录结构的命名规则。FAILURE: Build failed with an exception.* What went wrong:Could not determine the dependencies of task

2021-05-20 12:33:23 430

原创 view.measure(0,0)使用的原理

调用view.measure(0,0)时发生了什么view.measure(0,0)Determining the size of an Android view at runtimegetmeasuredheight() and getmeasuredwidth() returns 0 after View.measure()

2021-05-19 10:55:37 10

原创 Android PopupWindow使用

Android PopupWindow怎么合理控制弹出位置(showAtLocation)Android自定义PopupWindow显示在控件上方或者下方

2021-05-17 15:52:41 36

原创 Jetpack之Paging

Android Jetpack之Paging初探Paging在RecyclerView中的应用,有这一篇就够了JectPack组件开发7-----Paging分页加载组件(网络加载分页数据)Jetpack之Paging 使用

2021-05-17 15:50:53 18

原创 Jetpack之Room

Room Database完全解析

2021-05-17 15:50:46 17

原创 Android画三角形

android layerlist 里面的rotate标签得到三角形原理详解Android图层妙用之layer-list的基本使用介绍Android 通过 shape 实现三角形气泡效果Android stroke 边框线 某一边

2021-05-17 15:50:38 94

原创 RenderThread线程报错记录

RenderThread线程报错是很蛋疼的,它是属于native报错,而且还会有各种情况。04-23 16:31:38.343 17895 17895 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***04-23 16:31:38.344 17895 17895 F DEBUG : Build fingerprint: 'xiaomi/tiffany/tiffany:7.1.2/N2G47H/V9.5

2021-04-27 15:30:27 178

原创 网络传输的数据为啥需要encode

理解网络传输对数据类似是有要求的,只有字母数字和极少的字符可以传输,其他字符都不行,所以得把不能传输的字符编码成能传的,具体怎么编码还得依靠字符集,一般是utf-8。得后台收到传输来的字符串,得依靠同类型的字符集解码。参考为什么要对url进行encode关于URLEncoder编码的问题...

2021-02-24 11:25:19 102

原创 Jetpack之LiveData源码分析

文章目录设计思想理解LiveData的优势部分源码解析参考设计思想理解LiveData是可被观察的数据持有类,采用了观察者设计模式。LiveData是被观察者,可以注册多个不同的观察者,一旦LiveData持有的数据发生变化时,可以通知所有的被观察者。我们知道LiveData可以感受宿主Activity、Fragment或Service的生命周期,为了实现这个目的,把宿主抽象成Lifecycle充当被观察者,LiveData充当观察者,这样宿主生命周期变化时LiveData就能感应到;需要说明的是,Li

2021-02-20 15:34:02 29

原创 Android中maven的理解和使用

解释

2021-02-19 15:51:59 93

原创 Gradle使用学习总结和实践

缓存的一个问题在开发中遇到一个问题,打好的aar包放到了maven上,可是AS同步之后,看代码还是原来的代码,手动去maven库下载包,确认是新代码。所以肯定是AS gradle缓存出问题了。我们把缓存删了/Users/zhongyili/.gradle/caches/modules-2/files-2.1参考Andorid Studio的Gradle缓存的第三方库的路径在哪?...

2021-02-18 18:11:14 33

原创 “对使用非SDK接口的限制”的适配实战

概述首先需要说明的是,“对使用非SDK接口的限制”是针对所有应用的。此限制是从9.0(28)开始引入的,只要是运行在9.0及以上系统的app都会有此限制,无论app适配的targetSDKVersion是多少。9.0、 1.0、 1.1版本对非SDK接口的限制是越来越严格。下面是官方文挡,说的很详细。9.0非SDK接口Android 10 中有关限制非 SDK 接口的更新Android 11 中有关限制非 SDK 接口的更新针对非 SDK 接口的限制有条件屏蔽 (greylist-max-x)

2021-02-08 17:41:58 168 1

原创 一文带你了解Android 11分区存储适配

分区存储概念为了让用户更好地控制自己的文件并减少混乱,Android 10针对应用推出的一个新的存储范例,新的存储模型会让以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限,即分区存储(scoped storage)。分区存储改变了应用在设备的外部存储设备中存储和访问文件的方式。从另一个角度来说,分区存储的推出更好的保护用户的隐私。默认情况下,对于以 Android 10 及更高版本为目标平台的应用,其访问权限范围限定为外部存储,即分

2021-02-08 11:36:18 2593 2

原创 git 使用学习总结和问题汇总

push代码时,冲突情况我们看看下面的提交记录可以看到有一次merge的记录,这是怎么造成的呢?其实这种结果在我们开发中很常见,A开发者在本地提交了代码,commit id是d2bf0ca1,然后push到远端,B开发也在本地提交了代码,commit id是29f52e29,push的时候失败了,因为远端有新提交了;这时,我们会使用git pull,拉取远端最新提交到本地,这时就会生成a5e16740的merge记录。这种操作会导致不必要的merge 提交记录。我们怎么避免呢?我们在本地提交的

2021-02-07 18:06:36 59 4

原创 Android 11 软件包可见性(Package Visibility)适配

软件包可见性只是对有些场景有影响的。总的来说就是,只要是查询别的app的信息都会受到影响的。Apps that are visible automatically 中说明了哪些情况下软件包可见性是自动获取的。startActivity() method is unaffected by the system’s package visibility behavior, you don’t need to add a element to your app’s manifest.Open URLs in

2021-02-02 18:25:13 553 2

原创 一行中,中间的TextView自适应功能实现

怎么实现这种需求呢?最笨的办法就是动态计算,很麻烦而且导致代码很不优雅。就是动态计算出TextView的宽度。有没有从布局上就能实现上图的需求呢?下面文章中方案还没试,以后碰到再试2 TextViews, left with ellipsis, right with nowrap, single line[]...

2021-02-02 11:05:45 47

原创 startActivityResult、setResult使用遇到问题

setResult在传递resultCode的时候,前一个Activity的总是收到是0,很奇怪,通过查询无外乎就是两种原因,一种是被启动的Activity是singleTask,一种是被启动的Activity在finish后才执行的setResult。我大概看了一眼代码,finish是在setResult之后调用的,排查发现是第一种情况,折腾了很久不行,后来无意中发现,是第二种情况,代码在隐藏处在setResult之前调用了finish。startActivityForResult和setResult

2020-12-31 11:16:30 43

原创 Arr包导入问题

在library的module AAALib中的libs放入一个aar BBB包,把这个moduler打包成aar包是不包含libs里aar包的,这个需要格外注意。解决办法是把aar包放到一个专门的module aarLib里,主项目依赖aarLib,AAALib打包成aar可以从maven仓库下载,也能放到aarLib中,只是AAALib编译的时候,需要依赖aarLib。两个工程都包含aarLib。也就是说aar包是平级的,不能包含。...

2020-12-25 16:06:19 47

原创 TextView自定义扩展

Android实现TextView内容可展开收缩功能自定义TextView,实现文本展开与收起android在TextView的最后一行后面拼接view(类似长文本的查看更多及收起)

2020-12-21 14:23:48 72 4

原创 Kotlin之object关键字和@JvmStatic注解

说一些题外话。随着对kotlin原理的认识,个人感觉是kotlin从概念上来说是对java语法的一种包装和优化,我们知道kotlin也是属于jvm语言,最终也是需要编译成java字节码的,把kotlin对应的字节码翻译成java源码,发现还是java语法的那些东西,kotlin只是把这些东西封装了,对外提供“接口”方便客户端程序员使用,只不过这种封装是编译器层面支持的。object是kotlin的关键字,在java中是没有。这块知识的学习看Kotlin学习系列之:object关键字的使用场景,讲的很好,这

2020-12-16 16:23:23 243

原创 gradle编译错误汇总

maven-metadata一直下载或报错在项目中遇到一个问题,maven-metadata一直下载不下来,或者报如下的错Connect to maven.google.com:80 [maven.google.com/216.58.200.46] failed: connect timed out可是,已经翻墙,在浏览器中可以打开maven.google.com后来再网上搜索资料发现需要把https://maven.google.com 替换为https://dl.google.com/dl/an

2020-12-16 16:03:32 109

原创 协程到底是什么

一句话来说:协程是一个抽象的概念,是通过程序自身的逻辑来实现流程跳转。只存在于程序代码层面。进程和线程是一个实际存在的,进程是一个程序的运行实例,它管理着各种资源;一个进程有多个线程,线程才是具体的执行单位,它们共享着进程中的部分资源,同样有着私有资源(PC程序计数器、执行栈等),线程间默认通过共享内存进行交互,线程间同步通过锁/信号量等进行互斥操作。由于线程切换需要操作系统在内核/用户态间的切换才能改变状态,导致线程切换本身非常耗费资源。线程是操作系统抽象出来的执行流,由操作系统统一调度管理。那在一个

2020-12-15 12:36:05 51

原创 Xposed是怎么影响执行过程的

看看没有Xposed的调用执行栈 at com.xxx.system.starttasks.UnicomInitTask.realExecute(UnicomInitTask.java:26) at com.xxx.system.starttasks.AbsStartTask.execute(AbsStartTask.java:27) at com.xxx.system.DependUidCallbackManager$1.onServerSettingSuccess(DependUidCallbac

2020-12-07 18:06:39 39

原创 Kotlin类实例化和java有区别呀

/** * @Author zhongyili * @Date 2020/11/27 */public class Person { public String name; public String name2 = name; public Person(String name) { this.name = name; }}String name2 = new Person("111").name2;对java类实例化了解的同学,应该知道结

2020-11-27 15:30:52 303

原创 Android 多线程使用最佳实践

【腾讯Bugly干货】Android性能优化典范之多线程篇Android性能优化典范 - 第5季Android 性能优化:多线程

2020-11-26 12:03:53 56

欧式距离+归一化

本程序是Matlab程序,实现了去数据的批量处理,对数据进行归一化,求欧式距离。压缩包里有数据有程序,并且程序有很详细的注释,是本人自己编写的,希望可以帮到有需要的人!

2011-12-08

策略模式的小例子

自己编写的一个策略模式的简单例子,可以用于学习参考,同时本例子中还使用了泛型。导入到Eclipse中直接可以运行。同时此文件夹中还有一个关于策略模式的PPT,是张龙老师编写的,很不错! 我还写了一篇博文是和本程序相对应的,叫“设计模式之策略模式”,大家感兴趣的可以去看看!

2012-09-07

onInterceptTouchEvent和onTouchEvent使用demo

关于onInterceptTouchEvent和onTouchEvent使用demo,很不错的一个demo,可以帮助Android的触摸事件。

2013-05-29

Android的SQLite数据库学习的小例子

SQLite数据库学习的小例子,很适合初学者,里面有详细的注释!

2013-04-03

android开发学习笔记第二季

学习android开发过程中的笔记,分享给各位!

2011-12-01

android开发笔记

本人刚开始学习android,此文档是学习中的笔记,希望对大家有帮助!

2011-11-14

Fragment被覆盖返回, 变成为null,怎么回事?

发表于 2013-06-13 最后回复 2013-06-13

启动Activity的问题,实在解决不了,求大神帮忙!

发表于 2013-05-20 最后回复 2013-05-26

Eclipse 格式化不了

发表于 2013-05-02 最后回复 2013-05-20

该应用已存在,不允许重复上传

发表于 2011-12-12 最后回复 2013-05-20

Android平台搭建心得

发表于 2011-11-07 最后回复 2013-05-20

空空如也

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

TA关注的人 TA的粉丝

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