- 博客(34)
- 收藏
- 关注
原创 android 13 root
接下来,需要修改一些内核代码,以允许adbd进程修改系统的能力集,以及关闭SELinux的强制执行。需要修改一些系统文件,以允许adbd进程在root用户下运行,并关闭Verity检查。函数中的代码,以防止它检查adbd进程是否有CAP_SETPCAP能力,以及是否传递了一个有效的能力参数。函数,让它总是返回false,以防止它检查系统属性或内核参数是否设置了SELinux的强制执行。函数,让它总是返回false,以防止它降低adbd进程的权限。函数中的代码,以防止它删除adbd进程的任何能力。
2024-06-19 17:42:09 985
原创 git log实用指令
在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。完成这个任务最简单而又有效的工具是。有许多选项可以帮助你搜寻你所要找的提交, 下面我们会介绍几个最常用的选项。你也可以限制显示的日志条目数量,例如使用。,它会显示每次提交所引入的差异(按。其中一个比较有用的选项是。
2023-12-19 14:45:23 587
原创 win10 物理按键映射、快捷键修改
win电脑ctrl太远,手势操作跨度大?习惯了mac的ctrl+tab切换窗口,难以适应alt+tab切换窗口等等?借助powertoys工具,可以映射物理按键,映射快捷键,done!
2022-05-24 15:18:56 2186 2
原创 Gradle 和插件这两者的最新版本
插件版本 所需的 Gradle 版本 1.0.0 - 1.1.3 2.2.1 - 2.3 1.2.0 - 1.3.1 2.2.1 - 2.9 1.5.0 2.2.1 - 2.13 2.0.0 - 2.1.2 2.10 - 2.13 2.1.3 - 2.2.3 2.14.1 - 3.5 2.3.0+ 3.3+ 3.0.0+ 4.1+ 3.1.0+ 4.4+ 3.2.0 - 3.2.1 4.6+ 3.3.0 -
2022-05-20 16:10:31 511 1
原创 Android glide之图片新增透明度变换
关于变换在Glide中,Transformations 可以获取资源并修改它,然后返回被修改后的资源。通常变换操作是用来完成剪裁或对位图应用过滤器,但它也可以用于转换GIF动画,甚至自定义的资源类型。内置类型Glide 提供了很多内置的变换,包括:CenterCropFitCenterCircleCrop应用通过 RequestOptions 类可以应用变换:默认变换Glide.with(fragment).load(url).fitCenter().into(imageView)
2022-04-29 16:30:01 2337
原创 基于LiveData的Service刷新UI
前言使用单例拓展LiveData对象,可以在您的app全局使用。LiveData一旦与service构建联系,通过observer观察者,即可更新数据源。下面举例说明构建SyncLiveData继承LiveData构建SyncServiceSyncFragmentFragment通过SyncLiveData观察LiveData数据发生变化后,可以做相关UI更新。LiveData通过Service发生数据更新。一、构建SyncLiveData类public class SyncLive
2022-04-21 15:18:44 4157
原创 Android RecyclerView With DiffUtil
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、DiffUtil是什么?1.了解 DiffUtil 算法二、使用步骤1.将 DiffUtil 添加到 ListAdapter2.更新数据前言Android RecyclerViews几乎是所有Android应用程序的一部分。用户滚动列表和更新列表内容时,Recycl
2022-04-14 15:49:51 3534
转载 Android db workmanager调试器
1、AS打开 Database Inspector如需在 Database Inspector 中打开数据库,请执行以下操作: 在模拟器或搭载 API 级别 26 或更高版本的已连接设备上运行您的应用。 从菜单栏中依次选择View > Tool Windows > App Inspection。 选择Database Inspector标签页。 从下拉菜单中选择正在运行的应用进程。 当前正在运行的应用中的数据库显示在Databases窗...
2022-03-24 15:40:45 3352
原创 在 Kotlin 中使用 RxAndroid 进行反应式编程
响应式编程RxJava是一个响应式实现,将这个概念带到了 Android 平台。Android 应用程序是您开始探索反应式世界的理想场所。使用RxAndroid更容易,这是一个包装异步 UI 事件以更像 RxJava 的库。在这个 RxAndroid 响应式编程教程中,您将学习如何执行以下操作:掌握反应式编程的概念。 定义一个Observable。 将按钮点击和文本字段上下文更改等异步事件转换为可观察的构造。 转换和过滤可观察项目。 在代码执行中利用 Rx 线程。 将几个 observ
2022-03-18 22:10:22 4017
原创 Android函数插桩
一、什么是插桩插桩:目标程序代码中某些位置插入或修改一些代码,从而在目标程序运行过程中获取某些程序状态并加以分析。简单来说就是在代码中插入代码。 函数插桩:便是在函数中插入或修改代码,在Android编译过程中,往字节码里插入自定义的字节码,所以也可以称为字节码插桩。二、如何进行操作完成插桩需要考虑以下两步:1、寻找插入时机 了解Android打包流程2、插入字节码 2.1、插桩入口 Transform API:Android Gradle提供,可操作获取字节码2...
2022-03-08 15:42:58 4404
原创 Android AsyncTask已被弃用
如果你对android开发感兴趣,那么我很确定你对android AsyncTask很了解。AsyncTask类帮助我们在后台线程中执行一些代码。在AsyncTask的帮助下,我们可以在后台线程上执行某些操作,并在UI线程中返回结果。但Android AsyncTask在API级别30中已被弃用。那么,现在的替代方案是什么?为什么Android AsyncTask不受欢迎?以下是官方反对它的原因。AsyncTask旨在实现UI线程的正确和简单使用。然而,最常见的用例是集成到UI中,这会导致
2022-03-08 10:13:52 5342
原创 Android背光系统实现
(一)Lights应用层SystemUI——系统应用,其主要功能:状态栏信息显示、通知面板、截图/壁纸/屏保服务等;代码:packages/apps/Settings/src/com/android/settings/BrightnessPreference.javaframeworks/base/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.javaframeworks/base/p...
2022-03-07 15:58:04 2478
原创 SSL认证过程介绍
1、SSL概述安全套接层(Secure Socket Layer,SSL )是一种在两台机器之间提供安全通道的协议。它具有保护传输数据以及识别通信机器的功能。安全通道是透明的,意思就是说它对传输的数据不加变更。客户与服务器之间的数据是经过加密的,一端写入的数据完全是另一端读取的内容。透明性使得几乎所有基于TCP 的协议稍加改动就可以在SSL 上运行,非常方便。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通
2022-03-04 17:59:41 9424
原创 Retrofit原理分析
1.OkHttp源码首先来一张okhttp源码的完整流程图1.1.RealCall.getResponseWithInterceptorChain方法解析首先看一个典型的同步请求过程public String get(String url) throws IOException { //新建OKHttpClient客户端 OkHttpClient client = new OkHttpClient(); //新建一个Request对象 Re.
2022-03-04 10:14:18 194
原创 Mac之UltraEdit
1、下载UltraEdit 18.00.0.22版本并安装2、运行一次UltraEdit,关闭3、控制台运行://修改skProtectionPlus::IsActivated函数printf '\x31\xC0\xFF\xC0\xC3\x90' | dd seek=$((0x76DC40)) conv=notrunc bs=1 of=/Applications/UltraEdit.app/Contents/MacOS/UltraEdit4、done...
2022-02-23 13:48:50 1341
原创 ViewPager嵌套WebView滑动冲突问题解决
在SwipeRefreshLayout、ViewPager,容器控件中内嵌了webview,webview的头部banner横向滑动跟viewpager冲突,可以采用如下自定义的webview来完美解决。public class CloudsBannerWebView extends WebView { public CloudsBannerWebView(Context context) { super(context); } public CloudsBanne...
2022-02-21 17:54:47 599
原创 Android之缩略图缓存策略比对
BlobCache算法,这个算法的核心就是将所有的缓存数据都保存在同一个data文件中,记录缓存数据的索引保存在index文件中,由于index文件内存占用较小,读写时会把整个index文件映射至内存,然后使用RandomAccessFile随机读取接口,像操作指针一样控制index的偏移量读写data文件对应位置的数据。由于缓存文件存储在同一个文件下,缓存数据只能增加不能删除,BlobCache巧妙通过两个data文件(active和inactive)的翻转来实现缓存数据的删除更新。...
2022-01-31 10:00:43 599
原创 ContentProvider call实现跨进程通信
1、ContentProvider query作为 Android 四大基础组件之一的 ContentProvider 本来它的作用只是提供内容性质的跨进程访问。APP-A通过APP-B的ContentProvider相关实现,可以获取B的向外暴露的SQL或者SP数据,但是A如何通知B去更新ContentProvider的相关内容?传统方式有1:广播;2:AIDL,弊端是使用流程相对繁琐2、ContentProvider call在 API 11 (Android 3.0) 中...
2022-01-26 16:55:50 6005
原创 多进程初始化WorkManager
1、背景WorkManager用于处理Android中复杂的异步工作。WorkManager插件足以替换JobScheduler、Firebase JobDispatcher或Alarm Manager来完成这项工作。假设一个应用有多进程,在初始化WorkManager,除了主进程,还包含子进程,我们命名为remote。当我创建PeriodicWorkRequest在Application.onCreate,这是最简单的启动方式。这时候会受到异常:Process: com.examp...
2022-01-19 09:58:30 1200
原创 Android之内存优化
内存管理 内存泄漏 内存使用查看方法 关于内存测试项 自动化工具1、 Android中的进程Native进程用C/C++编写的,不包含dalvik实例的进程,/system/bin/目录下面的程序文件运行后都是以native进程形式存在的。/system/bin/surfaceflinger、/system/bin/rild、procrank等就是native进程。 内存函数包括 MALLOC/FREE,NEW/DELETE等。动态内存需要人工管理。Dalvik进程Andro..
2022-01-16 08:56:55 3081
原创 Git 精美客户端-fork
Fork是一个友好的全功能的 Git 客户端,还非常多实用的功能,整体易用性已经达到很高的程度1、提交列表界面。2、使用合并冲突帮助器轻松解决合并冲突。3、允许您查看常见图像格式的差异4、通过“历史记录”视图,您可以找到更改了特定文件或目录的所有提交...
2022-01-14 09:55:24 3257
原创 画流程图、类图开源神器:draw.io
对于画流程图的工具,之前大家用得比较多的可能是:visio和process on了。visio是微软的一款画图软件,需要在电脑上安装,正版软件是付费的。process on是一款免费在线画图工具,功能非常强大。但有个缺点是只能免费保存最近9张图,想保留更多的图,需要付费升级。draw.io,它已经成为了我画图首选工具。https://www.diagrams.net/基本能覆盖你的所需,done!...
2021-12-24 10:00:05 2301 1
原创 RoomDatabase重启断电数据丢失
Room 在SQLite上提供了一个抽象层,以便在充分利用SQLite的强大功能的同时,能够流畅地访问数据库。Android终端立即断电重启时,SQ写入磁盘会有延时,导致数据丢失。Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。 在插入/更新数据库后,获取数据库地址File句柄,刷新一下。public void DBSync() throws IOExce...
2021-12-20 15:23:22 3253 2
原创 Flutter webview下拉刷新
构建一个webview的程序,却无法下拉刷新@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Stack( children: <Widget>[ Container( child: Center( child: Text...
2021-12-17 17:28:58 2280
原创 flutter_inappwebview
webview_flutter 是官方维护的 WebView 插件,特性是基于原生和 Flutter SDK 封装,继承 StatefulWidget,因此支持内嵌于 Flutter Widget 树中,这是比较灵活的。但不支持https自制证书强制信任。flutter_webview_plugin 则是基于原生 WebView 封装的 Flutter 插件,将原生的一些基本使用 API 封装好提供给 Flutter 调用,因此并不能内嵌于 Flutter Widget ...
2021-12-17 15:24:15 8739
原创 BouncyCastle之sm2公私匙
提供公私密匙对,及签名操作,工具类public class SignUtils { private static X9ECParameters x9ECParameters = CustomNamedCurves.getByName("sm2p256v1"); private static ECParameterSpec ecParameterSpec = new ECParameterSpec(x9ECParameters.getCurve(), x9ECParameters.getG(.
2021-12-16 11:51:54 3054
原创 海康威视硬件对接介绍
1、海康威视介绍海康威视从上市之初从事安防视频监控产品的研发、生产和销售,到现在是以视频为核心的物联网解决方案和数据运营服务提供商,面向全球提供安防、可视化管理与大数据服务。海康威视拥有视音频编解码、视频图像处理、视音频数据存储等核心技术,及云计算、大数据、深度学习等前瞻技术,针对公安、交通、司法、文教卫、金融、能源和智能楼宇等众多行业提供专业的细分产品、IVM智能可视化管理解决方案和大数据服务。在视频监控行业之外,海康威视基于视频技术,将业务延伸...
2021-12-16 11:40:40 4903
原创 视频通话分析
1:IP网络通讯协议在传统电话系统中,一次通话从建立系统连接到拆除连接都需要一定的信令来配合完成。同样,在IP电话中,如何寻找被叫方、如何建立应答、如何按照彼此的数据处理能力发送数据,也需要相应的信令系统,一般称为协议。目前在国际上,比较有影响的IP电话方面的协议包括ITU-T提出的H.323协议和IETF提出的SIP协议。而MGCP主要应用于运营商市场,在行业市场鲜有应用。1.1:协议概要分析1.1.1:H323协议H.323是ITU-T第16工作组的建议,由一组协议构成,其中有负责音频与
2021-12-14 11:52:42 5284
原创 正则表达式查找AA,ABC,ABCD等
public static int[] indexAAA(final CharSequence input) { Pattern p = Pattern.compile("(\\d)\\1{2}"); Matcher m = p.matcher(input); Log.i(TAG, m.toString()); if (m.find()) { return new int[]{m.start(), 3}; } else { retu.
2021-12-14 10:15:33 1484
原创 Android流量IP解剖方案
Android为VP*服务提供了一个用户级接口,开发只需关注与远程服务器的交互。其他操作如虚拟接口创建、地址和路由配置都是由操作系统完成的。1.从客户端建立VP*连接对于客户端,必须通过调用vp*服务准备,目的确保只有一个活动的VP*连接。如果已经有一个准备好的VP*连接(例如,停止然后手动启动同一个VP*连接),则返回空值。在这种情况下,我们应该手动调用onActivityResult函数。下面是用于在Button的onClick回调上启动VP*服务的代码public void onCl
2020-06-24 09:52:53 184
原创 OneNET之mqtt连接
OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台:面向设备,适配多种网络环境和常见传输协议,提供各类硬件终端的快速接入方案和设备管理服务;面向应用层,提供丰富的API和数据分发能力以满足各类行业应用系统的开发需求,使物联网企业可以更加专注于自身应用的开发,而不用将工作重心放在设备接入层的环境搭建上,从而缩短物联网系统的形成周期,降低企业研发、运营和运维成本。 OneNET提供安全稳定的设备接入服务,支持包括LWM2M、MQ...
2020-05-26 14:20:19 3051
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人