ViewPager基础
ViewPager 基础用法 ViewPager smoothScroll 速度控制 /** * 通过反射来修改 ViewPager的mScroller属性 */ try { Class clazz=Class.forName("android.support.v4.view.ViewPager"); Field f=clazz.getDeclaredField("mScro...
ViewPager 基础用法 ViewPager smoothScroll 速度控制 /** * 通过反射来修改 ViewPager的mScroller属性 */ try { Class clazz=Class.forName("android.support.v4.view.ViewPager"); Field f=clazz.getDeclaredField("mScro...
MultiDex multidex 的产生 在 Android5.0 之前,每一个 Android 应用中只会含有一个 dex 文件,因为 Android 系统本身的 bug,使得这个 dex 的方法数量被限制在 65535 之内,这就是 64K(64x1024) 事件。为了解决这个问题,Google 官方推出了 support-library 库。用起来也会有一些坑。 Android...
Hash 哈希\散列 散列函数 Hash function 散列函数(英语:Hash function)又称 散列算法、哈希函数,是一种从任何一种数据中创建小的数字 “ 指纹 “ 的方法。散列函数把消息或数据计算成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(又叫哈希值)(hash values,hash codes,hash sums,或 h...
LocalBroadcastManager 引入缘由 BroadcastReceiver 存在安全性问题 当应用程序发送某个广播时系统会将发送的 Intent 与系统中所有注册的 BroadcastReceiver 的 IntentFilter 进行匹配,若匹配成功则执行相应的 onReceive 函数。可以通过类似 sendBroadcast(Intent, String) 的...
可视化调试正则表达式 Regex Vis
SharedPreferences 原理分析 SP 一创建就开始在后台加载数据了 private Map<String, Object> mMap; private final File mFile; SharedPreferencesImpl(File file, int mode) { mFile = file; mBackupFile = makeBac...
ContentProvider 中做应用初始化 在 ContentProvider 中做应用初始化 原理我们都知道 ContentProvider 的 onCreate 的调用时机介于 Application 的 attachBaseContext 和 onCreate 之间,Provider 的 onCreate 优先于 Application 的 onCreate 执行,并且此...
AIDL 遇到的问题 AIDL 未生成 Java 代码 检查 gradle 有没有配置 buildFeatures { compose true aidl true }
Android 7.0 广播限制 广播限制 在 Android 7.0(Nougat)中引入了一些变化,这些变化对广播(Broadcasts)进行了限制,主要是为了提高设备的性能和电池寿命。以下是一些主要的限制: 后台服务限制: 为了减少后台服务的影响,Android 7.0 引入了对后台服务的新限制。特别是当应用在后台运行时,限制其使用 startService() ...
Service 基础 什么是 service? Service 概述 Service(服务) 是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如 Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以...