自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘之帅

正在积极接受治疗的重度懒癌患者……

  • 博客(85)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Iptables 客制化方法及基本使用

Iptables 的基本使用,以及 Android 客制化方法

2024-05-14 16:23:43 958

原创 Android Binder 调用栈

从 android.os.BinderProxy.transact 方法起手,到 android::IPCThreadState::waitForResponse,表示这是一个阻塞的 binder,再到 android::IPCThreadState::talkWithDriver,调用到 talkWithDriver 就说明正在和 binder 驱动交互了。在等待 Binder 请求的标记是调用栈停在 getAndExecuteCommand,但没调用 executeCommand 方法。

2023-12-14 10:43:32 287

原创 Framework 打印调用栈

在需要打印调用栈的地方,引入 CallStack.h 并调用 dumping_callstack 方法。把 callstack.cpp 、libutilscallstack 加入 mk 配置。利用 logcat 的第三个参数,new 一个 Exception 即可。

2023-12-14 10:13:17 174

原创 Android Studio 阅读 frameworks/base 下的代码

这之后 frameworks/base/core 下面的代码就可以相互跳转了,但是 AIDL 接口类型因为未编译过所以无法识别,这是一个小小的缺点,只能通过全局搜索来解决。frameworks/base/services/core 依赖 frameworks/base/core,Module SDK 最好选择 JAVA 的 SDK。同样的操作,可以把 frameworks/base/services/core 也添加进来,然后再配一下依赖。在下面的窗口中,只选择 java 就够用。

2023-01-16 18:39:19 1157

原创 使用 AIDL 注册回调,在 Service 侧收到的回调是 null

若参数为 AIDL 接口对象,则会生成类似如注释 1 处的代码,检测到 param 不为空后,会调用 param 的 asBinder 方法生成一个 IBinder 对象,然后通过 Binder 将该 IBinder 对象发送给 Service。Client 通过 AIDL 接口注册了一个回调,其中回调也是 AIDL 接口,注册时该回调对象不为 NULL,但是 Service 接收到该回调对象时却为 null。

2022-11-21 21:02:57 856

原创 开发 AppWidget

参考 https://www.cnblogs.com/joy99/p/6346829.html。

2022-11-21 20:58:46 709

原创 全屏的实现(隐藏 StatusBar 或 NavigationBar)

所以,View.SYSTEM_UI_FLAG_IMMERSIVE 都是配合View.SYSTEM_UI_FLAG_FULLSCREEN 和 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 一起使用的。要启用粘性沉浸模式,请调用 setSystemUiVisibility() 并将 SYSTEM_UI_FLAG_IMMERSIVE_STICKY 标志与 SYSTEM_UI_FLAG_FULLSCREEN 和 SYSTEM_UI_FLAG_HIDE_NAVIGATION 一起传递。

2022-11-21 20:54:49 3838

原创 Window 添加与更新流程

在注释 1 处,mWindowSession 是 IWindowSession 类型的字段,所以这里调用的是 IWindowSession::relayout 方法,IWindowSession 对应服务端的 com.android.server.wm.Session, 一个 ViewRootImpl 对应一个 Session,ViewRootImpl 与 WMS 的交互都要经由 Session 转发。显然 mChildren 在这里是 DisplayContent 类型的数组,即注释 2 处调用了。

2022-11-21 20:48:40 914

原创 WindowInsets 分发 & WindowInsets 相关类

ViewRootImpl 在 performTraversals 时会调用 dispatchApplyInsets 方法ViewRootImpl::dispatchApplyInsets 定义如下注释 1 处的 host,其实就是在调用 ViewRootImpl::setView 时传递进来的 View 对象,通常来说,是一个 ViewGroup 对象ViewGroup::dispatchApplyWindowInsets注释 1 处先执行 View 的 dispatchApplyWindowIns

2022-11-18 17:55:29 1387

原创 Android 9 画中画实现流程

注释 1 创建画中画模式的 stack,注释 2 将 Activity 的 Task 放到新建的画中画 stack 中,注释 3 执行变化动画,注释 4 用来显示该 task。进入画中画模式后,新的 activity 样式定义在 DecorView.java,当该 Window 进入画中画后。注释 1 创建了一个 Runnable ,该 Runnable 会在注释 3 被执行,其中核心代码是注释 2。注释 1 给 DecorView 设置了一个外轮廓,外轮廓定义如下。

2022-11-18 17:33:33 796

原创 Android 内存溢出、垃圾回收、四种引用

其实现原理为:使用 WeakReference 当作key来进行数据的存储,当 key 中的引用被回收掉之后,该 WeakReference 会被添加到 ReferenceQueue 中,当使用 WeakHashMap 时,WeakHashMap 会将 检索 ReferenceQueue 中的 key 对象,如果某一个 key 存在于 ReferenceQueue 则将其与对应的 value 一并删除。内存抖动:内存抖动是指在短时间内有大量的对象被创建或者被回收的现象,主要是循环中大量创建、回收对象。

2022-10-19 09:39:00 970

原创 Android MVVM LiveData postValue 吞消息

可以看到 mPostValueRunnable 本质是 NamelessClass_1 对象,在其 run 方法中,会读取 mPendingData 的值,然后通过调用 setValue 方法使其通知 Observer 对象。该问题可能发生在同线程也可能发生在不同线程之间,根本原因是,postValue 方法和实际执行通知 Observer 的操作之间存在时间差,这个是 Handler 的机制所导致的。连续调用多次 LiveData 的 postValue 方法,结果只有最后一次响应,前面的消息都被吞了。

2022-10-19 09:32:32 873

原创 Quick Settings 中 Tile 的加载

由上述代码可知,Quick Settings 对应 StatusBar::createDefaultQSFragment 方法创建的 Fragment,并被放置 mNotificationShadeWindowView 中的 R.id.qs_frame 下。从 QSFragment::onCreateView 方法可知,对应的布局文件为 R.layout.qs_panel。在 R.layout.qs_panel 中,掌管 Tile 显示的部分是 QSPanel,在布局文件中定义如下。

2022-10-19 09:29:39 399

原创 图案解锁流程

后续与 PIN 码解锁一样。

2022-10-19 09:26:22 495

原创 使用指纹的锁屏解锁流程

首次调用该函数时因为 mHideAnimationRun 仍然为 false,所以走了下面的分支,首先在注释 1 处,将 mHideAnimationRun 置为 true,然后在注释 2 处开始执行播放解锁前的 hide 动画,动画播放结束后,将调用 mHideAnimationFinishedRunnable 回调。注释 1 的判断语句不成立,所以走 else 流程,调用注释 2 处的代码移除 bouncer view。此时由于锁屏界面还未消失,所以注释 1 的判断成立,走了注释 2 的逻辑。

2022-10-19 09:24:32 1363 1

原创 密码解锁流程

【代码】密码解锁流程。

2022-10-19 09:20:17 316

原创 滑动解锁流程

后续与pin码解锁流程相同。

2022-10-18 16:42:19 656

原创 PIN 码解锁流程

【代码】PIN 码解锁流程。

2022-10-18 16:40:05 439

原创 KeyguardService 类间关系

有很多像 KeyguardStatusViewController 这样的类都持有 KeyguardStateController 的引用,他们可以通过 KeyguardStateController 主动获取、更新当前 Keyguard 的状态,也可以通过注册 callback 被动接收状态改变的通知。KeyguardUpdateMonitor 用于监听 keyguard 可能感兴趣的更新,并提供注册回调的方法,其内部持有。

2022-10-18 16:37:06 774

原创 Keyguard 视图结构

【代码】Keyguard 视图结构。

2022-10-18 16:32:51 225

原创 Android S 不受信任触摸事件

在搭载 Android 12 或更高版本的设备上,不受信任的触摸功能默认被屏蔽。检测不受信任的触摸操作是否被屏蔽。

2022-10-18 16:30:52 3679 2

原创 Android Dock

Android Dock

2022-10-18 16:27:28 613

原创 Android Doze

Android Doze

2022-10-18 16:26:36 860

原创 Android Activity绑定Service工具类 含自动重连功能 记录备用

ServiceBindHelperimport android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android

2021-08-28 14:25:44 376

原创 Android Framework 客户端 ViewRootImpl 到 View 的事件分发过程

#mermaid-svg-1WVJIbTGSiZqiesM .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-1WVJIbTGSiZqiesM .label text{fill:#333}#mermaid-svg-1WVJIbTGSiZqiesM .node rect,#mermaid-svg-1WVJIbTGSi

2021-08-17 18:07:04 541

原创 Android 动态添加 View 学习笔记

加载布局文件LayoutParamsaddView

2021-05-31 22:21:46 1714 3

原创 Android 中 Window 机制与 Window 抽象类 学习笔记

源码分析

2021-05-30 17:36:19 204 1

原创 在 IDEA 上优雅地使用 Javadoc

什么是 Javadoc ?Java 可以通过 Javadoc 将特定结构的注释从程序源代码中抽取出来形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。为什么使用 Javadoc ?Javadoc 可以写在类或者方法上面,当其他开发人员使用了写了 Javadoc 的类或者方法时,仅通过鼠标悬停就可以获得该类或方法的使用说明,便于自己或其他人日后阅读程序。Javadoc 的使用规范是什么样的 ?何

2021-05-09 14:28:09 8875 1

原创 YOLO1 学习笔记

本文是对YOLO1的学习笔记,主要是从术语、网络结构、损失函数三个方面对这个网络进行学习,YOLO3据说比一代更优秀,所以我也是简单学了学基础的概念,没有去深入研究如何实现,下面是我对YOLO1的理解,相关参考我已给出链接,个人理解的内容肯定有不够准确的地方,希望能和大家交流讨论。文章目录基本术语网格bounding boxconfidence scoresIOU类别条件概率输入数据与预处理方法...

2020-12-28 22:02:58 421 1

原创 YOLO2 、RPN、BN 学习笔记

本文是对YOLO2的学习笔记,下面是我对YOLO1的理解,相关参考我已给出链接,个人理解的内容肯定有不够准确的地方,希望能和大家交流讨论。文章目录升级方案YOLO2网络在YOLO2中的 anchor boxpassthrough layer网络结构损失函数YOLO2的相关的知识Faster RCNN 中的 Anchor Boxes什么是 Anchor Boxes 与 RPN 网络为什么特征图上的...

2020-12-28 22:02:44 765 2

原创 YOLO3 网络结构 Keras 源码分析

YOLO3 Keras 源码:https://github.com/qqwweee/keras-yolo3前言因为 YOLO3 有 Keras 的源码,所以 YOLO3 的学习笔记将以源码分析的形式进行记录,本文给出了网络结构相关的源码内容分析,对逐层函数进行从是什么、为什么、怎么做三个方面进行讲解,并贴出了相关 Keras API 函数的说明,后续还将有关于数据预处理、参数函数等方面的源码分...

2020-12-28 22:02:29 306 1

原创 YOLO3 数据处理与数据加载 Keras源码分析

YOLO3 Keras 源码:https://github.com/qqwweee/keras-yolo3前言本文从主要是从源码层面对 YOLO3 的数据处理相关内容进行分析与讲解。通常,一个功能的实现需要多个函数配合,所以我将每个功能的实现函数分为两部分,基础函数 和 实现函数 :基础函数:被实现函数所依赖,是实现函数的一部分实现函数:通过调用基础函数实现功能源码内容比较多,通过目...

2020-12-28 22:02:14 408

原创 YOLO3 参数学习 Keras源码分析

文章目录参数学习损失函数代码实现基础函数`yolo_head``box_iou`实现函数`yolo_loss`训练模型基础函数`get_classes``get_anchors``create_model()`实现函数参数学习损失函数Keras 源码中的损失函数:loss(object)=−∑i=0K×K∑j=0MIijobj⋅(2−wi×hi)⋅[x^ilog(xi)+(1−x^i)lo...

2020-12-28 22:01:56 347

原创 YOLO3 目标检测与性能评价 Keras源码分析

文章目录使用 YOLO3配置 yolo.py运行 yolo_video.py图片检测源码分析基础函数`letterbox_image``YOLO.__init__(self, **kwargs)``YOLO._get_class()``YOLO._get_anchors()``YOLO.generate()``yolo_eval()``yolo_boxes_and_scores``yolo_cor...

2020-12-28 22:01:41 459

原创 目标检测中的损失函数笔记整理(待续)

文章目录Smooth L1 Loss函数定义与性质:定义性质导数定义与性质:定义性质来源:优缺点分析:优点缺点IOU Loss函数定义与性质定义性质计算流程导数的定义与性质性质来源优缺点分析优点缺点GIOU Loss函数定义与性质计算流程性质导数性质性质来源优缺点分析优点缺点DIOU Loss函数定义与性质性质导数性质性质CIOU Loss函数定义与性质优缺点分析优点Smooth L1 Loss...

2020-12-28 22:01:28 659 3

原创 keras yolo3 使用 CIOU Loss

文章目录原 keras yolo3 loss 分析关键函数分析yolo_headyolo_loss改造 yolo_loss关键变量分析`y_true``pred_box` 与 `raw_pred[0:4]``raw_true_xy` 与 `raw_true_wh`小结CIOU LOSS代码实现原 keras yolo3 loss 分析参考链接:https://blog.csdn.net/lz...

2020-12-28 22:01:07 960 3

原创 Hexo Next主题 解决公式块中公式换行问题

问题描述公式块内公式不能换行。问题环境主题:NexT 7.8.0 Releasedhexo:hexo-cli: 3.1.0os: Windows_NT 6.1.7601 win32 x64node: 12.14.0v8: 7.7.299.13-node.16uv: 1.33.1zlib: 1.2.11brotli: 1.0.7ares: 1.15.0modules...

2020-04-18 02:52:50 2491 3

原创 直观理解多维张量的 reshape

前言在机器学习领域,通常把标量、向量、矩阵,都称为张量,即将张量分为:0 维张量,标量1 维张量,向量2 维张量,矩阵…n 维张量标量很好表示,就是一个数:111向量是一组数:(1,2,3)(1,2,3)(1,2,3)矩阵是一组向量((1,2,3),(4,5,6))((1,2,3),(4,5,6))((1,2,3),(4,5,6))同时也可以把矩阵表示成类...

2020-04-16 13:14:11 3371 1

原创 机器学习中的“分布”

文章目录前言什么叫分布?随机变量概率分布机器学习中的“分布”是概率分布吗?小结为什么要假设满足“独立同分布”神经网络中 BN 是如何解决 ICS 的前言从在输入空间中的一个具体的实例上抽出一些属性,将这些属性组成一组向量,这组向量被称为特征向量。当一个特征向量输入到“学习器”中,“学习器”可以依据输入的特征向量返还一个期望的结果。用通俗的话讲,可以将“学习器”视为一个函数,建立一个输入空间到输...

2020-04-05 22:20:33 5520 5

原创 借助7Z.exe 实现RAR压缩包密码暴力破解 C语言实现

吐槽几句rar压缩包暴力破解这种软件 , 原理上挺简单的其实 , 就是不断的用字符去碰 , 指不定啥时候能碰上 , 爆破破解不就是这么回事嘛 , 之前下载个学习资料 , 说好的童叟无欺, 结果却给我加了个解压密码 , 上网寻思查个破解软件吧 , 要么带病毒 , 要么不能用 , 要么收费 , 寻思寻思 , 自己写一个吧 , 反正这东西原理也不难……源码#include<iostream>#inclu

2020-03-19 20:10:28 50113 25

RAR密码暴力破解(含源码 C语言实现)

C语言实现 , 内置源码 , 通过外部config.txt进行相关配置 , 暴力破解是基于 7z 的压缩引擎 所以文件内的 7z.exe 不可以少 . 字符集可以自定义 注意字符顺序影响着破解效率

2018-02-03

Spring+Sturts2+Mybaits整合基础jar包

jar包直接复制就能用,只包含基础jar包,如果需要可以自行增减。

2017-03-22

JavaMail所需jar包

JavaMail1_4_7.zip

2017-03-22

空空如也

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

TA关注的人

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