监听网络连接状态
监听网络连接状态 通过注册网络回调 (NetworkCallback),可以动态监控 Wi-Fi 的连接状态。 1234567891011121314151617181920val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManagerval networkCallback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { val networkCapabilities = connectivityManager.getNetworkCapabilities(network) if (networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true) ...
加载fragment
加载fragment1234567891011121314151617181920212223242526272829/** * 加载fragment */fun FragmentActivity.loadFragment(id: Int, from: Fragment?, to: Fragment?) { supportFragmentManager.let { manager -> manager.beginTransaction().run { if (from != to) { val fromFragment = manager.findFragmentByTag(from?.javaClass?.simpleName) fromFragment?.let { hide(it) } val toFragment = manager.findFragmentByTag(to?....
分区镜像刷写规则
分区镜像刷写规则在 Android 开发或系统定制中,修改了哪些代码/模块,就需要刷写对应的镜像分区。这是因为 Android 系统被划分为多个逻辑/物理分区(如 boot、system、vendor、super 等),每个分区承载不同层级的组件。 下面从 代码改动类型 → 对应需要刷写的镜像 进行详细说明: 🧩 一、Android 分区结构简要回顾(Android 10+ 动态分区) 分区 内容 是否可单独刷写(传统) 在动态分区中 boot 内核(kernel) + ramdisk(init、fstab 等) ✅ 是 ✅ 仍独立 system AOSP 核心框架、系统 App(Settings、SystemUI)、Java/Kotlin 代码 ✅(旧)❌(新,合并进 super) 合并到 super vendor 芯片厂商闭源驱动、HAL 实现、专有库(如 camera HAL、audio HAL) ✅(旧)❌(新) 合并到 super product OEM 定制 App、配置(如 Google Pixel 的额外服务...
MD5加密算法
MD5加密算法1234567891011import java.security.MessageDigestfun String.toMD5(): String { return MessageDigest.getInstance("MD5") .digest(toByteArray()) .joinToString("") { "%02x".format(it) }}fun main() { println("14233241".toMD5()) // 输出50c0bc627c5e86ea78d824682c10e783}
Android系统架构
Android系统架构在Android系统架构中,每一层都由多个模块组成,每个模块都有其特定的功能。以下是各层具体模块及其功能的详细介绍: 应用层(Applications) 包含用户直接交互的应用程序,如电话、短信、浏览器、联系人等。 第三方应用程序也是这一层的一部分,使用Java或Kotlin编写。 应用框架层(Application Framework) Activity Manager:管理应用生命周期和常见导航回退功能。 Window Manager:管理所有的窗口程序,提供多屏支持、通知栏信息等功能。 Content Providers:允许应用程序之间访问彼此的数据,例如读取联系人数据。 View System:构建应用程序的基本组件,包括列表、网格、文本框、按钮等UI元素。 Notification Manager:使所有应用可以在状态栏中显示自定义提醒。 Package Manager:负责管理应用程序包相关的操作,比如安装、卸载应用等。 Telephony Manager:提供对设备通话状态的管理和控制。 系统运行库层(Libraries + Androi...
Android系统编译
Android系统编译编译 Android 系统(AOSP - Android Open Source Project)是一个复杂但结构化的过程,涉及多个步骤和工具。以下是 在 Linux 环境下 编译 AOSP 的基本指令流程,适用于官方支持的设备或通用系统镜像(如 aosp_arm64-eng)。 🧰 一、准备工作1. 安装依赖环境(Ubuntu 20.04/22.04 推荐)1234sudo apt updatesudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev \ gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libxml2-utils xsltproc \ unzip fontconfig python3 python3-pip repo repo 是 Google 提供的一个管理多个 Git 仓库的工具。 📁 二、初始化代码库1. 创建工作目录并进入1mkdir ~/aosp ...
Edittext点击外部区域隐藏软件盘
Edittext点击外部区域隐藏软件盘12345678910111213binding.root.setOnTouchListener { _, event -> if (event.action == MotionEvent.ACTION_DOWN) { val focusedView: View? = activity?.currentFocus if (focusedView is EditText) { // 如果当前焦点在EditText上,并且点击位置不在EditText范围内,隐藏键盘 if (event.x < focusedView.getLeft() || event.x > focusedView.getRight() || event.y < focusedView.getTop() || event.y > focusedView.getBottom()) { ...
Windows常用指令
Windows常用指令 关机 12shutdown -s -t 0shutdown -p 重启 1shutdown -r -t 0 休眠 1shutdown -h 截图 Win+Shift+S
如何查看win电脑的WIFI密码
如何查看win电脑的WIFI密码12netsh wlan show profilesnetsh wlan show profiles "hansong-office" key=clear 也可用以下指令,直接得出结果 1for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
关于EventBus
关于EventBus12EventBus.getDefault().register(this)EventBus.getDefault().unregister(this) @Subscribe 订阅者方法ThreadMode 决定了订阅者的行为处理在主线程还是子线程,也是就耗时操作尽量开辟子线程,避免ANR等等,一般默认就行 发布者 在主线程发送事件 在子线程发送事件 main 主线程 主线程 posting 主线程 子线程 async 新开一个子线程 新开一个子线程 background 新开一个子线程 子线程 12345678910111213141516171819202122232425262728@Subscribe(threadMode = ThreadMode.MAIN) public void MessageEventBus(EventBusMessage eventBusMessage){ //在TextView显示接收的消息,从这个类里拿属性. tv_title.setText(eventBusMessag...




