分类: Android

39 篇文章

Kotlin-inline、nonline、crossinline
1. inline java中有一个编译时常量的概念,即编译阶段就会确定变量的值,并直接将确定的值- 替换到调用的地方。 kotlin中使用 const val 用于定义编译时常量 函数相应的则使用 inline,并且还会内联当前函数体内的函数。 fun A(B: ()->Unit) { B() print("A") } // 调用A函数的时…
Kotlin-不变型、协变、逆变
1. 子类型 任何时候,如果要使用 类型A 的值,都能用 类型B 的值作为替换(当做 A 的值),称 B 是 A 的子类型。 2. 泛型中的子类型 如果List要成为List的子类就必须满足下面两个条件: 1. List中方法接收参数的范围 不得小于 List的方法 2. List中方法返回值的范围 不得大于 List的方法 // List带泛型的…
Android-自定义宿主管理状态栏
自定义状态栏View对象 /** * 自定义状态栏的View,用于StatusBarHostLayout中使用 */ class StatusView extends View { private int mBarSize; public StatusView(Context context) { this(context, null, 0); }…
Android-事件分发和处理
文章源链接 简单总结记录 GestureBinding: 1. handlePointerEvent 事件分发 -> _handlePointerEventImmediately 2. _handlePointerEventImmediately 对down/up,cancel等事件进行处理 2.1 pointerDown事件,会进行hitt…
Android-仿QQ图片识别
一、实现的效果 预览 二、实现 2.1 首先需要拍照或从相册选取图片进行OCR识别 2.1.1 这里使用的是阿里云OCR识别 替换为你申请的AppID即可 // 将图册或拍照获取的图片 转为Base64 (注意图片压缩处理) override suspend fun ocrImage(imgBase64: String): Flow<ApiR…
Android-热修复之Thinker
一、开始配置 项目build.gradle配置 dependencies { // 暂时不能超过4.0.0版本 classpath "com.android.tools.build:gradle:3.5.3" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" …
Android-反编译
一、反编译工具集合 反编译apk工具由一些脚本和不同的工具组成,它可以提供自动反编译功能,从GUI上显示的Android apk文件生成Java源代码和资源。 jd gui jadx classyshark bytecode-viewer 二、工具 Apktool:v2。4.1 dex2jar:v2。1. jd gui:v1。6.6 jadx:v1…
Android-通知栏监听
一、判断应用是否包含监听权限 private fun isEnabled(): Boolean { val pkgName = packageName val flat: String = Settings.Secure.getString(contentResolver, "enabled_notification_listeners") if …