【Android】卸载应用以及9.0以上无反应的解决方法
开发自用文件管理器时梳理出Android应用三种卸载方式,分别为系统弹窗确认卸载、系统应用静默卸载和借助root权限执行命令卸载,同时说明Android9及以上版本弹窗卸载需新增权限,感慨安卓高版本持续收紧权限管控并计划整理系统大版本API变动内容
分享编程心得、开发实践、生活随笔,偶尔聊聊游戏与远方
开发自用文件管理器时梳理出Android应用三种卸载方式,分别为系统弹窗确认卸载、系统应用静默卸载和借助root权限执行命令卸载,同时说明Android9及以上版本弹窗卸载需新增权限,感慨安卓高版本持续收紧权限管控并计划整理系统大版本API变动内容
因借用键盘无法使用媒体控制键,萌生打造可移动即插即用外置统一控制器的想法,计划利用STM8S微控制器、游戏手柄摇杆等现有器件制作圆盘造型控制器,通过USB连接实现设备操控,考虑成本选用洞洞板制作,重拾相关开发技术准备完成这款自制小装置
VPS部署GitHub项目时需要配置数据库,因遗忘相关操作命令,便记录下MySQL创建数据库、添加用户及授权访问的基础配置命令
我在使用Flutter框架编写Demo时,遇到GestureDetector仅能点击文字触发点击事件、空白区域无响应的问题,通过添加指定属性成功解决了该问题
我发现GitHub开源项目README中的精美标签并非手动制作图片,分享了借助shields.io网站动态生成标签的方法,讲解了自定义文字颜色、样式图标以及拉取平台动态数据生成标签的具体用法
我在编写自定义折线图控件计算坐标轴极值时,因使用Float.MIN_VALUE初始化变量导致线条绘制异常,排查后发现该值并非预期的最小负数而是最小精度,最终通过使用-Float.MAX_VALUE解决了问题
我在安卓开发中因系统碎片化需频繁真机调试,为免去频繁切换操作的麻烦,筛选出两款开源手机投屏工具进行分享,分别介绍了scrcpy跨平台易操作的特点和QtScrcpy功能丰富体验更佳但存在画面比例拉伸的小短板,同时也说起自己因IP问题迁移VPS丢失数据,后续会努力提升文章分享质量
作者在优化Activity性能时,发现首次加载因**Kotlin反射实例化ViewHolder**导致严重卡顿(耗时300-400ms);经测试验证,Kotlin反射性能远低于Java反射,且反射库会增加应用体积;最终通过替换为直接构造方法实例化解决卡顿问题,并建议在性能敏感场景避免使用Kotlin反射。
建造者模式是创建复杂对象的设计模式,可将对象构建过程与部件解耦,核心结构包含导演类、抽象建造者、具体建造者和产品类;适用于部件与组装流程可灵活扩展的复杂对象创建场景,具备解耦细节、易扩展的优点,也存在产生多余对象的不足;文章以组装台式电脑为例,通过Java代码完整实现了该模式的全流程逻辑。
本文系统梳理Android线程与线程池知识,先明确线程定义,介绍 Thread、Runnable、Callable、AsyncTask、IntentService、HandlerThread 六种Android线程开启方式;随后讲解线程池的作用、ThreadPoolExecutor 核心参数与任务分配规则,并详细说明 Fixed、Cached、Scheduled 等六类常用线程池的特性与创建方法,最后总结线程池基础使用API。
观察者模式(发布-订阅模式)是一种行为型设计模式,用于建立对象间一对多依赖关系,被观察者状态改变时会自动通知所有观察者并触发更新;文章介绍了该模式的核心结构与要点,结合Android点击事件举例,通过Kotlin代码完整实现了模式逻辑,同时说明了通知的推拉两种形式,并给出使用时的注意事项。
单例模式可保证类全局仅有一个实例并提供统一访问点,适用于共享访问、资源密集型对象及工具类场景;文章详解Java中饿汉、懒汉(线程不安全/安全)、双重检查、静态内部类、枚举六种实现方式,对比各自特性与适用情况,并补充了防止反序列化破坏单例的解决方案。