Android
文章平均质量分 80
Android技术相关文章分享
一点IT+
让技术改变生活!+一点创新,+无限可能!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分享两个SElinux配置案例
系统应用访问property是受限的,会被SElinux挡住,因此需要配置selinux,使其系统应用可以设置property属性。selinux配置如下:(Android14)selinux配置如下:(Android14)原创 2025-11-12 10:55:47 · 285 阅读 · 0 评论 -
DeepSeek-OCR Client:这款开源工具让图片文字提取效率提升 10 倍!
DeepSeek-OCR Client是一款基于Electron开发的桌面GUI工具,专为模型打造。作为一款非官方客户端,它实现了本地化的图片文字识别功能,让普通用户无需复杂的命令行操作,就能轻松使用先进的OCR技术。该项目的核心价值在于降低了AI OCR技术的使用门槛。通过直观的图形界面,用户可以实现拖拽上传图片、实时查看识别结果、一键复制内容等操作,同时保留了模型原有的高精度识别能力。无论是文档扫描、截图文字提取还是图片内容分析,都能通过这款工具高效完成。DeepSeek 。原创 2025-11-08 20:59:05 · 1022 阅读 · 0 评论 -
中间件SELinux权限配置
SELinux 采用白名单方法,仅授予政策中明确允许的访问权限。自定义属性默认为类型,Android 10.0 不允许 vendor 下的 native service 访问,开机出现avc。原创 2025-11-08 17:23:31 · 745 阅读 · 0 评论 -
Android 14 中 system\_app 访问私有数据目录下可执行文件的 SELinux 权限问题深度研究
公共策略层:位于目录下,包含 Android 平台的核心策略定义,由 Google 维护和更新。设备厂商策略层:位于device/<厂商名>/<设备名>/sepolicy/目录下,允许设备制造商添加自定义策略。编译生成的目标策略:位于目录下,是编译后的二进制策略文件。策略源文件(\*.te 后缀):定义域(domain)和标签(label),描述不同域之间的访问规则。上下文文件。原创 2025-11-08 16:41:00 · 850 阅读 · 0 评论 -
Android Apk快速签名工具
将文件解压后,将需要签名的apk放到解压后的文件夹中,运行bat脚本即可对应用进行签名。当然里面的签名文件需要替换成你平台的签名文件。文庄提供签名运行程序sign.bat文件下载。了解了Android apk签名知识后,下面分享一个签名工具。原创 2025-09-26 02:50:57 · 254 阅读 · 0 评论 -
一款apk反编译神器
大部分同学都反编译过apk,但是大多工具反编译只能进行搜索查看具体的实现。这里分享一款反编译神器,及支持快速搜索定位,还支持点击跳转,感觉在IDE中点击跳转一样,非常方便!反编译工具:jadx-gui-1.3.1-with-jre-win。下载压缩包后直接解压即可使用!原创 2025-09-26 02:15:14 · 287 阅读 · 0 评论 -
怎样快速安装一堆应用
手动敲命令一个一个安装应用太过麻烦,我们可以写一个批处理脚本快速自动安装一堆应用。将bat脚本放到一堆apk的同级目录下,然后点击运行就可自动安装了!原创 2025-09-26 01:42:37 · 171 阅读 · 0 评论 -
Android Webview无法加载问题分析 (三)
正常webview加载的时候会有如下打印:表示webview进程启动当安装应用的时候,或者使用am force-stop 应用的时候,会有以下打印,表示webview进程被杀死且释放当使用pm clear 应用的时候,会有以下打印,表示webview进程被杀死且释放xxx/org.chromium.content.app.SandboxedProcessService进程被系统拦截,不能再次启动导致webview无法加载出来。原创 2025-09-03 00:03:15 · 452 阅读 · 0 评论 -
Android Webview封装使用以及实现异步通信 (二)
异步实现的核心思想就是:浏览器发起调用的时候携带id,回调到浏览器的时候继续携带该id,通过id明确一条完整的调用链路。原创 2025-09-03 00:01:15 · 311 阅读 · 0 评论 -
Android Webview封装使用以及实现同步通信 (一)
具体项目demo,发私信获取。原创 2025-09-02 23:58:07 · 314 阅读 · 0 评论 -
OTA瘦包之android:extractNativeLibs
Android OTA升级分两种方式:1、OTA全量包升级2、OTA差分包升级OTA全量升级包是指系统整编出完整的OTA升级包,OTA差分升级包是基于当前版本的target包和上一个版本的target包对比之后制作出来的。注:非A/B模式已被Android 15废弃既然OTA升级包太大会造成各种各样的问题,那么我们可以考虑缩减OTA包大小来提升升级过程中的稳定性。下面我们就讨论应用android:extractNativeLibs配置对OTA包大小的影响。原创 2025-08-06 10:50:29 · 992 阅读 · 0 评论 -
adb安装应用弹窗确认技术方案设计
基于安卓9。原创 2025-08-03 15:56:13 · 998 阅读 · 0 评论 -
Android应用管控之挂起
当应用被挂起后,打开应用的时候,系统会弹窗提示,如下:应用被设置成挂起状态后,启动过程中会进行拦截,并进行弹窗提示。当然我们也可以使用我们自定义的弹窗,那么就需要替换掉系统中的弹窗。原创 2025-08-02 19:54:56 · 696 阅读 · 0 评论 -
Android14 动态设置默认Launcher (二)
前文提到了使用RoleManager进行默认主页设置,这里提供另一种方案大家应该都见过选择默认主页的系统选择提示框,比如这种:如果当前没有设置默认主页,那么就会弹窗提示设置默认主页。那么我们可以走系统自带流程,做默认选择应用动作直接跳过弹框选择操作,来实现默认主页设置。找到代码:frameworks/base/core/java/com/android/internal/app/ResolverActivity.java 做进一步分析。原创 2025-08-02 10:45:48 · 562 阅读 · 0 评论 -
Android14 动态设置默认Launcher (一)
说起动态设置默认Launcher,其实在原生设置中是有这个功能的。如下图:这里可以看到我放了3个Launcher,再加默认的Launcher3 总共4个选中其中的Launcher,那么该应用就是默认Launcher了这个是当前系统默认的Launcher做为默认主页最直观的表现就是,在其它APP中从底部快速上滑会回到默认Launcher中当前默认Launcher快速上滑效果同样我们在其它APP中从底部快速上滑会回到默认Launcher中设置的默认Launcher快速上滑效果。原创 2025-08-02 10:40:16 · 626 阅读 · 0 评论 -
ASFP调试aosp源码
Android studio for platform,简称asfpgoogle官方开发的IDE (支持Java/Kotlin/C++/Jni/Native/Shell/Python)原创 2025-08-01 22:16:39 · 584 阅读 · 0 评论 -
系统预装应用卸载原理分析 (七)
系统应用可以反射android.content.pm.IPackageManager$Stub获得deletePackageAsUser进行删除系统应用注意:deletePackageAsUser会清除数据,但不会卸载更新。即如果系统应用更新后,会存在两个apk,一个在system,一个在data。如果要删除data下的更新,可以先调用卸载接口再调用deletePackageAsUser。原创 2025-07-30 16:19:39 · 407 阅读 · 0 评论 -
Android各版本 实现系统预装应用卸载后恢复安装 (六)
接着上文 Android各版本 实现系统预装应用及更新安装一键全部卸载 (五) 讲到卸载系统应用,那么怎么恢复安装?接着分析恢复安装通过反射调用Android原生接口实现反射installExistingPackageAsUser恢复安装,恢复安装之前可以通过packageManager.getApplicationInfo判断系统是否还存在安装包,否则可以跳应用商店进行安装。原创 2025-07-30 16:16:27 · 314 阅读 · 0 评论 -
Android各版本 实现系统预装应用及更新安装一键全部卸载 (五)
支持系统应用及更新安装全部卸载。原创 2025-07-30 16:13:51 · 870 阅读 · 0 评论 -
Android各版本 应用安装之静默安装/卸载平台接口实现 (四)
将平台接口文件都放置于下面的路径下:java文件:CloudComputerAgent.java这个文件是APP调用的总入口= null) {Java文件:PackageManager.java这个文件提供了静默安装及卸载的调用/*** 包管理模块*/= null) {//推荐厂商在实现是通过调用有权限的服务端进行安装,因此这里会跨进程调用到系统应用中进行具体的静默安装与卸载/*** APP通过此接口静默安装应用。原创 2025-07-30 16:11:07 · 484 阅读 · 0 评论 -
Android各版本 应用安装之静默安装/卸载SDK实现 (三)
前两章分析了Android应用安装与卸载的各种方式:Android14 应用安装之方法汇总 (一)Android14 应用安装之静默安装 (二)下面我们就兼容Android各版本实现静默安装与卸载的SDK。根据前两篇文章的描述,应用要实现静默安装与卸载,那么该应用必须为系统应用才有权限来执行。也即下面我们实现的SDK只能供系统应用来对接。怎么将应用变成系统应用,这里不再赘述!原创 2025-07-30 16:07:27 · 449 阅读 · 0 评论 -
Android14 应用安装之静默安装 (二)
静默安装不需要用户授权安装未知应用,也不需要用户手动点击同意安装,可以在后台静悄悄的安装好应用。原创 2025-07-30 13:53:44 · 553 阅读 · 0 评论 -
Android14 应用安装之方法汇总 (一)
首先准备马甲(静默安装需要调用的接口)由于调用了系统未公开的接口,而这些接口有些是通过aidl实现的,下面我们把需要的马甲修改一下。当下载到系统里面的apk权限不够时(静默安装提示权限问题, 有可能当前apk只有(-rw-------)权限 ) 可以使用下面三种方式修改权限。上诉安装不仅可以安装新的apk(从无到有),也可以用于更新旧的apk(版本更新),在进行版本更新的时候,必须保证两个apk的签名是一致的。安装成功的回调接口IPackageInstallObserver.java(修改过的马甲)原创 2025-07-30 13:49:46 · 1311 阅读 · 0 评论 -
深入了解Android应用程序签名
应用程序签名是将数字签名应用于 Android 应用程序(APK 文件)的过程。它使用密钥对对应用程序进行加密,确保在应用程序发布和分发过程中的完整性和真实性。验证完整性:签名可确保 APK 文件在传输或分发过程中没有被篡改或损坏。验证真实性:签名允许用户验证应用程序的来源和开发者身份,以确保 APK 来自可信的来源。安全性:签名可以防止恶意用户在未经授权的情况下更改应用程序的代码或资源。apksigner 是 Android SDK 中的一个命令行工具,用于对 APK 文件进行签名和验证。原创 2025-07-30 12:04:08 · 1262 阅读 · 0 评论 -
Android14 启动launcher流程 (二)
手动清除用户通过系统“设置” -> “应用” -> “默认应用”或“应用信息”页面。最常用、最标准的方式,赋予用户完全的控制权。代码清除应用调用PackageManager.clearPackagePreferredActivities()。仅限于系统应用或具有特殊权限的应用。普通应用只能引导用户去手动操作。系统清除Android系统卸载应用、OTA升级、更新应用等。被动触发,是系统保持自身健康和兼容性的机制。原创 2025-07-30 11:33:18 · 835 阅读 · 0 评论 -
Android14 启动launcher流程 (一)
触发点:通知系统就绪 (决策核心:调用。关键逻辑:方法在发现没有任何前台应用可以恢复时,会调用。执行点:遍历所有屏幕,并为每个屏幕调用。最终指令:创建一个标准的),并交给去完成最后的启动流程。原创 2025-07-30 11:29:56 · 760 阅读 · 0 评论 -
Android14 系统窗口动画分析 (三)
这里我们对系统窗口动画进行总结。原创 2025-07-30 11:24:07 · 640 阅读 · 0 评论 -
Android14 Launcher3 定制主页丝滑使用Recents功能 (三)
/packages/apps/Launcher3/quickstep/res/drawable-xxhdpi,这里面放置背景资源。指定窗口动画为NoAnimation,不给窗口指定动画。修改前的theme为:LauncherTheme。修改后的theme为:RecentsTheme。Recents功能未修改前。修改前-自定义主页快速上滑。修改前-其它app快速上滑。修改后-自定义主页快速上滑。修改后-其它app快速上滑。修改前-其它app上滑。修改后-自定义主页上滑。修改后-其它app上滑。原创 2025-07-29 22:34:45 · 1144 阅读 · 0 评论 -
Android14 系统Wallpaper详解之ImageWallpaper
集成自WallpaperService.EngineCanvasEngine是ImageWallpaper实现的用于执行具体的壁纸绘制相关逻辑的执行者。其重写了父类Engine的一些方法来实现自定义的行为。按照顺序执行,CanvasEngine先执行onCreate方法,并在改方法内部根据设备的相关信息初始化相关参数//在WallpaperService的onBind方法执行时,会触发改方法的执行。//用于获取设备尺寸,然后根据该信息更新相关尺寸参数@Override。原创 2025-07-29 21:29:29 · 449 阅读 · 0 评论 -
Android14 系统窗口动画分析 (二)
最终根据调用链路追踪到了SurfaceAnimator.java文件中继续看看getSurfaceControl的具体实现。原创 2025-07-29 21:22:43 · 816 阅读 · 0 评论 -
Android14 系统窗口动画分析 (一)
res/values/styles.xml中定义动画style创建具体的动画文件:res/anim/enter.xmlres/anim/exit.xml2、代码中动态引入动画资源xxx/MyActivity.javaxxx/MyService.java二、应用显示弹窗窗口动画案例service中弹窗动画资源res/values/styles.xmlres/anim/dialog_enter_anim.xmlres/anim/dialog_exit_anim.xml三、系统源码分析通过w原创 2025-07-29 15:57:28 · 953 阅读 · 0 评论 -
AndroidStudio调试aosp源码 (模块、gradle配置)
接着我们继续搭建aosp源码阅读/调试平台前面的文章我们提到了怎么导入aosp源码,那么接下来,我们就完整的导入某个模块的源码,来进行查阅和调试代码。原创 2025-07-29 14:05:50 · 1161 阅读 · 0 评论 -
AOSP源码查看工具对比
在奔赴远方的星河之前,请先折竹为筏,聚沙成台。工具是延伸掌纹的舟楫,平台是托举理想的云阶。在AOSP系统开发过程中,阅读 AOSP (Android Open Source Project) 源码是至关重要的环节。然而,如何构建一个高效、便捷的阅读环境,同样是不容忽视的关键挑战。本文将介绍利用多种工具和方法阅读 AOSP 源码的高效实践,并对比分析其主要优缺点。原创 2025-07-28 23:23:48 · 1199 阅读 · 0 评论 -
Android14 Launcher3 定制主页丝滑使用Recents功能 (一)
aosp默认主页是Launcher3,其中Recents功能就属于Launcher3的功能。考虑这样一个问题,如果设备默认主页需要使用我们自己开发的主页,那么当向上滑动显示Recents最近任务列表的时候,是个什么效果:当前窗口缩小并且慢慢透视,能看到桌面壁纸,紧接着同步显示缩略图,并且缩略图可以跟着手指移动,当最后放手的时候,显示出RecentsActivity,那么这几个步骤显示下来,会感觉眼花缭乱。那么我们怎么优化呢? 当向上滑动的时候直接在当前窗口展示缩略图,最后放手的时候显示出RecentsAct原创 2025-07-28 22:04:03 · 909 阅读 · 0 评论 -
Android14 系统Wallpaper详解 壁纸窗口分析 (三)
接着上面的 一 二 继续分析壁纸切换流程。原创 2025-07-26 18:38:00 · 370 阅读 · 0 评论 -
Android14 系统Wallpaper详解 壁纸窗口分析 (二)
接着 《Android14 系统Wallpaper详解 壁纸窗口分析 (一)》上一步中我们分析了WallpaperWindowToken的挂载。接下来我们继续分析./frameworks/base/packages/SystemUI/src/com/android/systemui/wallpapers/ImageWallpaper.java./frameworks/base/core/java/android/service/wallpaper/WallpaperService.java根据窗口添加流程原创 2025-07-26 18:33:14 · 422 阅读 · 0 评论 -
Android14 系统Wallpaper详解 壁纸窗口分析 (一)
通过dumpsys window windows确定壁纸显示信息可以确定壁纸显示控制是在systemui进程中的ImageWallpaper另外说明:静态壁纸运行在systemui,由systemui实现WallpaperService动态壁纸运行在各业务进程,由各业务进程实现WallpaperService。原创 2025-07-26 18:26:34 · 899 阅读 · 0 评论 -
Android14 系统Wallpaper详解 壁纸显示说明
壁纸主要分为两类,锁屏壁纸和桌面壁纸。原创 2025-07-26 18:21:37 · 1545 阅读 · 0 评论 -
Android14 系统Wallpaper详解 壁纸服务分析
安卓的动态壁纸可以归属到SystemUI中,是SystemUI管理的一部分,安卓支持静态壁纸,同时也支持动态壁纸(level 7后加入)可以从设备的内部或者是外部存储中选择一个图片资源来作为静态壁纸,此外也可以设置壁纸跟随时间的变化进行一些变化(例如切换不同的图片资源),这也是安卓的特色功能之一。需要说明的是当某个应用通过系统的接口设置为壁纸应用后,会启动一个壁纸服务,该服务的优先级很高,从某种程度上来说是不会被系统主动杀死的(但是可以被手动停止)。原创 2025-07-26 18:17:25 · 1049 阅读 · 0 评论 -
Android14 系统Wallpaper详解 锁屏透看壁纸和桌面透看壁纸的切换
桌面Activity的配置主题xml设置一个类似showallpaper的属性既可以,就可以让桌面后面显示壁纸了。原创 2025-07-26 18:11:41 · 1098 阅读 · 0 评论
分享