移动开发

MySQL基本查询

目录Create插入替换Retrieve(读取)select(确定列)​where条件(确定行)order by语句limit(分页)Update(更新)Delete(删除)截断表去重表数据聚合统计聚合函数group by句子的使用Create插入 语法: INSE

对 Android 应用换肤方案的总结

虽然现在已经有很多不错的换肤方案,但是这些方案或多或少都存在自己的问题。在这篇文章中,我将对 Android 现有的一些动态换肤方案进行梳理,对其底层实现原理进行分析,然后对开发一个新的换肤方案的可能性进行总结。 1、通过自定义 style 换肤 1.1 方案的基本原理 这种方案是我之前用得比较多的一种方案。我在使用的时候也做了很多的调整。开源版本可以参考 Colorful 这个库. [图片上传失

Lifecycle:生命周期感知型组件的基础 —— Jetpack 系列(1)

请点赞,你的点赞对我意义重大,满足下我的虚荣心。 🔥 Hi,我是小彭。本文已收录到 GitHub · Android-NoteBook 中。这里有 Android 进阶成长知识体系,有志同道合的朋友,跟我一起成长。 前言 生命周期是 Activity 的核心特性之一,也是 Android 视图开发无法规避的重要问题。 为了更加健壮地处理生命周期问题,Google 的解决方案是将

Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救

这是 MVI 架构的第三篇,系列文章目录如下: Android 架构之 MVI 雏形 | 响应式编程 + 单向数据流 + 唯一可信数据源 Android 架构之 MVI 初级体 | Flow 替换 LiveData 重构数据链路 Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救 Android 架构之 MVI 究

M系Mac原生运行《原神》保姆级教程!手把手教你零门槛畅玩手游!

Apple Silicon芯片的进化正在重塑M系列Mac的跨平台能力。通过开源工具PlayCover,开发者社区成功突破系统限制,让《原神 》等热门手游在M1/M2/M3/M4芯片设备上流畅运行。 本文将提供从软件下载到自动安装的全流程解决方案,助你充分释放Mac设备的娱乐潜能。 下载PlayCover打开浏览器,访问PlayCove

基于Android的记录生活APP_springboot+vue

开发语言:Java 框架:springboot +Android JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat12 开发软件:eclipse/myeclipse/idea Maven包:Maven3.6 系统展示APP

Android的ViewModel正确使用姿势?

看了网上很多对于ViewModel的讲解,对比了官方的使用,自觉有点官方译文科普的意思,即使看很多,仍旧没有醍醐灌顶的感觉,于是,深入源码分析后,便想将对于ViewModel的使用以及定位做一些简单的记录,如与编者有不一样的看法,希望在评论区一起讨论。文章旨在抛砖引玉,并无教学之意。 对于ViewModel的官方介绍: ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。Vi

Android-推荐一个检测内存泄漏的库(LeakCanary)

图片来源网络,入侵必删 在Android开发当中,内存泄漏是会影响用户体验的。LeakCanary开源库是一个常见的定位内存泄漏的开源库,这篇博客来分享一下它的使用,让我们的应用更加的丝滑。 LeakCanary 一个帮助开发者检测内存泄漏以及Application Not Responding的开源库。更多具体的简介请查看wiki 引入项目 dependencies { // d

Android 获取手机已安装的应用列表

1、扫描已安装的应用列表 var queryIntentActivities = mutableListOf<ResolveInfo>() val intent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) if (android.os.Build.VERSION.S

Android10.0 锁屏分析——KeyguardPINView PIN锁分析

学习笔记: PIN 解锁流程跟Android10.0 锁屏分析——KeyguardPatternView图案锁分析一样,这里就不过多讲解了。 在这里主要分析下 PIN 键盘的按钮事件。 1. 确认按钮 // KeyguardPinBasedInputView.java @Override protected void onFinishInflate() { // 省略部分