自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1083)
  • 资源 (47)
  • 收藏
  • 关注

原创 2020-08-01 Google 省电模式

1. 省电模式主要做什么?DisplayPowerController->屏幕亮度减半VibratorService->关闭触摸震动和来电震动NetworkPolicyManagerService->限制 Doze 非白名单应用联网(WiFi与数据流量)使用WindowManagerService->关闭动画PowerManagerService->省电模式-CPU降频UiModeManagerService->开启暗色主题模式(Q平台版本新增)GnssL

2020-08-01 23:11:31 1533 1

原创 Android 剩余可用时长的计算公式

1. 剩余可用时长 BatteryStatsImpl.computeBatteryTimeRemaining 函数http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java**公式:剩余电池可用时长 = 每消耗1%的电量的平均时间 * 当前电量值 **原理:统计出每次放电的电量变化的时间,获得每消耗1%的电量的平均时间,再根据当前电量值,从而得到

2020-07-19 23:11:35 4472 2

原创 [20191207][Android10]高德地图导航功耗场景优化

1. 测试现象1.1 EPRODUCING PROCEDURES:1.进入高德 Map(data) wifi),起点为自己所在位置,搜索一个位置进行导航;2.等待30秒后开始记录电流,持续5分钟;3.按Power键,灭屏待机;4.手机灭屏15秒后开始记录电流,持续3分钟;1.2 Test numberSummaryTokyo pro设备高德地...

2019-12-07 16:55:18 4064 1

原创 GPS框架和省电

一、GPS 功能介绍1.1 术语介绍GPS是由美国国防部研制建立的一种具有全方位、全天候、全时段、高精度的卫星导航系统,能为全球用户提供低成本、高精度的三维位置、速度和精确定时等导航信息,是卫星通信技术在导航领域的应用典范,它极大地提高了地球社会的信息化水平,有力地推动了数字经济的发展1.2 GPS与GNSS区别GNSS 的全称是全球导航卫星系统(Global Navigation Sat...

2019-11-24 20:49:07 515

原创 App读写文件节点配置Se linux权限

0.文章参考https://blog.csdn.net/xiaoxiangyuhai/article/details/76270294https://blog.csdn.net/u014341735/article/details/512442581. 需求App 中进行读写Linux下的文件节点/sys/class/power_supply/battery/coulomb_cou...

2019-06-27 12:04:02 3551

原创 201805个人对于场景省电的初识

0.前言个人笔记1. 场景省电省电场景联想,后续主流手机大厂都倾向于场景识别2. 省电技术常用的省电技术,在合适的时间合适的场景遇到合适的技术,才是缘分...

2018-05-14 14:54:52 597

原创 Kernel中的cgroup2介绍

原文:日期:2015年10月作者:Tejun Heo(Linux内核维护者)文档说明本文档是cgroup v2的官方设计规范,完整描述其用户态可见的接口与行为,包括:•核心架构设计原则•所有控制器的具体行为规范•系统级约束与约定版本要求:所有后续修改必须同步更新本文档。v1文档位置:Documentation/admin-guide/cgroup-v1/index.rstTejun Heo 是 Linux 内核的重要维护者,尤其在控制组(cgroups)领域做出了重大贡献。

2025-09-06 21:58:27 1236

原创 ​cgroup2相关文件节点介绍

对源和目标 cgroup 的共同祖先 cgroup.procs有写入权限线程化 cgroup:读取返回 EOPNOTSUPP(因所有进程属于线程根),写入会迁移进程的所有线程。"threaded":线程化 cgroup(属于线程化子树成员)写入操作:写入 "threaded"可将 cgroup 转为线程化(单向操作)。写入:以 +(启用)或 -(禁用)前缀操作控制器(如 "+cpu -memory")。操作:写入 "1"杀死该 cgroup 及所有子 cgroup 中的进程(发送 SIGKILL)。

2025-09-02 12:10:00 845

原创 【Android 16】基于Android W 的冻结机制详解

为了解决应用在后台占用cpu资源的问题,将进程迁移到冻结的 cgroup 来冻结缓存的应用,可以减少活跃缓存应用存在的活跃和空闲 CPU 消耗,平衡了资源管理与用户体验,改善性能和功耗。版本默认状态冻结延迟核心改进技术实现Android 11(2020年)默认关闭10 分钟• 初版功能引入,基于 cgroup freezer• 支持 adj ≥ 900的缓存应用冻结• 通过 /sys/fs/cgroup///cgroup.freeze写入 1/0 控制冻结Android 12。

2025-09-01 00:15:00 1857 1

原创 【Android 16】Android W 的冻结机制内核分析

这表示当前线程有挂起的信号需要处理,内核在调度时会检查这个标志​​​​​​​。综上,我们可以对冻结的实现做个简单总结,上层通过cgroup 中间抽象层将cgroup.freeze节点,写值为1,然后内核监控这个节点的值,对写了这个节点的进程,将jobctl中的标志位设置为 JOBCTL_TRAP_FREEZE,然后处于TIF_SIGPENDING的状态(有待处理的信号),信号处理机制监控到以后,调用内核的调度方法,将进程主动挂起,将当前进程的CPU时间让给其他进程,从而实现了进程的冻结。

2025-08-29 13:16:00 1053

原创 手机冻结技术发展时间轴

在中国,app连进入background的adj都不怎么愿意,各种app的保活提高优先级黑科技的使用,让Android生态全球最不和谐,应用会进入 CACHED_APP_MIN_ADJ的状态比较难,换句话说但凡应用后台收发广播或service行为立刻就变成非cache进程了,且如果冻结即时通讯应用,由于没有消息推送的解冻机制,会导致被冻结即时通讯应用消息接收不到。冻的应用不够多也很容易被频繁解冻。将进程迁移至冻结组,系统给进程添加冻结伪信号,当进程回到用户空间时,处理冻结伪信号进入冻结状态。

2025-08-27 12:06:50 794 2

原创 【Android 16】Android W 的冻结机制框架层分析

Android 14还针对广播进行了优化。freezeAppAsyncLSP里面会post一个10s的message在时间到了的时候调用freezeProcess去冻结进程(延时10s发送进程冻结的消息,在10s内如果收到进程解冻的消息,会把进程冻结消息移除,也就不会执行进程冻结的操作)​​​​​​​。freezeBinder最终调用到libbinder里面去,最终判断是否是Android设备,是的话,就通过ioctl,传递BINDER_FREEZE,最终走到内核的 binder 驱动上​​​​​​​。

2025-08-25 19:57:17 1526

原创 常用冻结调试命令

比如常见的是,在进程被冻结之后,进程还是处于 S 态,但是会在内核函数 _refrigerator 或者 do_freezer_trap 上等待。1.在内核版本 4.14的时候,进程被冻结显示的是D状态, 高版本中已经不会对进程切到 D 状态,而是保留 S 态,然后在 S 态的基础上做 freeze 的处理。在不同版本上,随着CPU的冻结这块功能的不断迭代,在高版本中已经不会对进程切到 D 状态,而是保留 S 态,然后在 S 态的基础上做 freeze 的处理。进程因为等待某个事件而被系统挂起。

2025-08-23 07:31:21 1242

原创 Android15 AndroidV冻结和解冻的场景

cgroup 最初由 Google 工程师 Paul Menage 和 Rohit Seth 在 2006 年提出,是一种细粒度资源控制的Linux内核机制。于 2007 年合并到 Linux 内核主线中。然而 Google 原生系统直到 Android 11 或更高版本上才支持 CACHE 应用的 CPU 冻结功能。当应用切换到后台并且没有其他活动时,系统会在一定时间内通过状态判断,将进程 ID 迁移到冻结的 cgroup 节点上,实现冻结 CACHE 应用。

2025-08-21 20:49:28 1394

原创 【学习】Linux 内核中的 cgroup freezer 子系统

cgroup_freeze中通过css_for_each_descendant_pre循环将父cgroup的freeze状态传递到各子孙cgroup中,父cgroup被freeze或者unfreeze,其目录下的子cgroup也会被freeze或者unfreeze,执行动作是在函数cgroup_do_freeze中,cgroup_do_freeze会循环遍历cgroup中的task执行cgroup_freeze_task函数做下一步的冻结/解冻操作。在本文中,我们只是简单介绍了内核冻结功能的实现逻辑。

2025-08-19 13:12:22 920

原创 Android 15 框架层冻结流程源码分析

触发条件1.当OomAdjuster计算进程的oom_score_adj≥900(CACHED_APP_MIN_ADJ)时,触发冻结决策。2.防抖机制:freezeAppAsyncLSP默认延迟10秒,避免频繁切换状态JNI层交互1.CachedAppOptimizer通过JNI调用android_os_Process_setProcessFrozen,最终由libprocessgroup操作cgroup文件节点。

2025-08-17 07:03:56 1111

原创 关联启动思路参考

1.AMS中分别对Activity\Broadcast\Service\Provider\Instrument插桩并包含caller,called,action,filter信息。3.基于非可感知拦截原则,对caller和called同时进行应用标签状态识别可见\音视频\前后台\上传下载\悬浮窗\gps\VPN\蓝牙等识别,建立通用精细化拦截规则。2.建立rule匹配机制,可自由caller,called,action,前后台和componet组合关系让拦截配置更加弹性并支持云配。实测结果非常好来着。

2025-08-15 13:27:03 153

原创 Android进程冻结机制初识

应用A打开到前台,使用完后,退到后台,启动应用B,然后A变成前APP级别,adj变成700,然后再打开应用C,这时如果A没有启动服务或者接受广播之类的,就会变成cached级别应用,那么系统就会设置一个10分钟的超时,如果10分钟的时间内,adj的级别没有变化或者没有小于cached级别,系统就会触发冻结A,如果adj变化为小于cached级别,那么就会取消冻结A。通过 cgroup 机制解除进程冻结(写入 0到 /sys/fs/cgroup/uid_/pid_/cgroup.freeze)

2025-08-13 13:11:08 1405

原创 DOU模型系数公式

小结:相对于不同厂商DOU续航模型主要还是场景定义差异(这个主要还是需要大数据查看不同机型的用户画像,例如高频使用的TOP应用和使用时长)。DOU(Daily Operating Usage)模型系数是衡量手机电池续航能力的实验室指标,其公式为:标称容量*95/24小时消耗量(各场景平均测试电流*各个模拟使用时长的总和)剩余5小时:低功耗待机(如夜间息屏),耗电量约125mAh(25mA×5h),24小时总耗电量≈2865mAh。标称容量 × 95%:电池总电量扣除5%的“安全余量”(防止过放损耗)

2025-08-11 19:42:45 6775

原创 android15哪些广播可以会走冷启动或者用于保活呢?

条件分类具体场景是否入队返回值/异常基础检查通过无权限/状态拦截,且存在有效接收者或resultTo✅ 符合SDK沙箱权限不足沙箱进程发送未授权的广播❌ 不符合抛出SecurityException用户状态无效目标用户未运行且非系统/关机广播❌ 不符合后台权限不足广播选项要求临时白名单但调用方无权限❌ 不符合抛出SecurityException受保护广播拦截非系统进程发送受保护广播(ACTION_BOOT_COMPLETED)❌ 不符合。

2025-08-09 13:12:00 403

原创 Android识别整机CTS场景思路参考

大家还有其他思路吗?起码目前思路3就基本够用了,最多加下思路2兜底一下就行。思路4.cts签名:提取应用的签名证书摘要(如 SHA-256 哈希值)思路1:穷举所有cts测试的包名(好像没人这样干了)一般会在包安装事件,进行识别整机CTS场景思路参考。思路3.cts测试项一定会安装的应用识别。思路2.cts包名正则匹配+特殊包名。

2025-08-07 13:07:18 419

原创 Android设备开机自启动的进程列表和dump自启动日志的思路参考

联发科(MTK)芯片组定制的 Telephony(通话服务)扩展模块,属于底层通信中间件,负责与基带(Modem)交互,管理 SIM 卡、信号、网络模式(如 2G/4G 切换)、运营商配置等核心功能。Android 系统设置的数据存储与管理核心服务,负责维护全局(Global)、安全(Secure)和系统(System)三类配置(如屏幕亮度、飞行模式等),数据存储在 /data/system/users/0/settings_*.xml文件中。通常预装在支持OTA升级的设备中,与系统更新服务深度绑定。

2025-08-05 12:12:09 1290

原创 观察抖音使用AuthenticatorService账号同步保活的现象

账户同步服务绑定保活原理:基于 系统账户同步机制 的后台保活方案,其核心原理是通过绑定系统账户服务(AccountManager)和同步适配器框架(Sync Adapter),利用系统级特权维持进程活跃状态Stub 授权器:AuthenticatorService继承 Service并实现 AbstractAccountAuthenticator,作为存根授权器(Stub Authenticator),满足 Sync Adapter 框架的强制要求。

2025-08-03 12:30:00 976

原创 从堆栈看Android广播拉活流程的源码流程​

但是大家核心的思想或原理还是没有变化的:在不影响用户体验的前提下,对一些后台应用非可感知的冷启动或暖启动,进行是否真实用户业务需求检测,通过组件级别的拦截或放行,达到后台自启动和关联启动的智能管理效果。我们可以看出来其实没有统一标准,但是有一点是肯定的,假如进程是活跃进程(可感知进程),通俗的讲后台是否前台属性,有没有使用binder,是否上传下载,或者播放多媒体等,让进程重要度高的场景,如果是系统和厂商的后台管理策略会判断是重要进程,很多机制是豁免的。开机启动过程中,我们可以观察应用宝是怎样被拉活的?

2025-08-02 07:01:50 616

原创 应用宝(MediaRouteProviderService)媒体路由保活思路研究

答:肯定是有用的,不然应用宝也不会搞这个保活技术。如下AOSP配置就行,可以简单包名也可以精确到called,caller,action和component,从配置文件我们也可以看出来,手机厂商拦截应用后台自启动,真的可以很随心所欲啊。判断启动方和被启动方的应用标签状态,如果都非可见且被启动方(应用宝)也没有被fork,但是由于caller是系统进程想要冷启动第三方App,还是需要慎重判断拦截(例如加一些灭屏条件或剔除gms类型拉起或Media路由非真实被使用等更精细化条件辅助判断是否拦截)

2025-07-30 13:12:55 1176

原创 Android15广播ANR的源码流程分析

源码路径:frameworks/base/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java。源码路径:frameworks/base/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java。源码路径:frameworks/base/core/java/android/app/ContextImpl.java。

2025-07-28 19:36:05 396

原创 Android广播机制体系初识

其他App只要“竖起耳朵”(注册BroadcastReceiver),就能听到自己关心的广播。广播就是Android里的“喊话-听响”机制,让App之间既能默契配合,又不用互相绑死!随叫随到:静态注册的广播(像24小时待命的保安)连App没打开都能响应;”(这就是发送广播)不用互相认识:喊话的不用管谁在听,听的也不用管谁喊的,各干各的,互不打扰(解耦)别磨蹭:广播处理要快,超过10秒系统会急眼(ANR)【只有有序广播有超时机制】│ │ ├─ 超时监控:BROADCAST_TIMEOUT_MSG。

2025-07-26 06:51:38 802

原创 Android15或AndroidU广播的发送流程

1.发送广播(App喊话)App喊话:你的App调用ContextImpl.sendBroadcast(),就像对着全校喊:“注意!有消息!交给校长(AMS):消息通过Binder(类似对讲机)传给系统服务ActivityManagerService(AMS),校长负责管理全校广播。2. 广播排队(校长整理消息)分类处理:AMS检查广播类型(普通/有序)和权限,把广播塞进队列(BroadcastQueue)。

2025-07-24 20:48:26 1105

原创 广播分发中心-广播注册流程

广播是怎么注册的呢?阶段组件/数据结构作用描述存储位置/关联关系App进程阶段开发者自定义的广播接收器,实现onReceive方法处理事件。App进程(Activity/Service等组件内)将BroadcastReceiver封装为跨进程可调用的IIntentReceiver接口对象。LoadedApk中创建,关联InnerReceiver继承IIntentReceiver.Stub的Binder实体,AMS通过它回调App主线程的onReceive。

2025-07-22 21:36:26 860

原创 NDK fork拉活-底层C守护进程拉起App进程

理论 Android Daemon 在处理后台任务、长期运行的服务时非常有用。但是我使用是系统开发角度,我的工作是反保活哈。所以对我来说拦截自启动的技术也是一样的,本质就是一个return的事情解除保活状态。在Android开发中,后台服务保活一直是难题。随着系统版本升级,单纯依靠Java层的Service越来越容易被系统回收。的方案,通过JNI fork子进程监控主进程状态,实现高存活率的后台任务管理。为啥我想玩这个保活的技术呢?因为我最近有时间研究反保活,反正随便玩一玩哈。

2025-07-20 07:03:20 501

原创 Android 应用保活思路

1.1.1 onStartCommand返回START_STICKY1.1.2 onDestroy中startself1.1.3 Service后台变前置,setForground(true)1.1.4 双service(通知栏) 提高进程优先级1.1.5 监听系统广播,如开机,锁屏,亮屏等重新启动服务1.1.6 alarm定时器,启动服务。

2025-07-18 20:51:21 480

原创 自启动策略调研

callingPackage.equals(calledPkg) 且 inActivitySelfCallWhitePkgList(callingPackage)callerApp.processName.contains(pkgName))系统限制后台启动(restrictStartupBg())且包名在限制列表(inRestrictAppList)isCpnType)且非Top应用(!intent == null 或 intent.getComponent() == null。

2025-07-16 21:51:51 822

原创 观察应用宝进程的自启动行为

观察应用宝进程的自启动行为自启动方式触发场景/原理进程标识拦截策略BindService绑定服务通过bindService()绑定系统/其他应用服务,被杀后重新绑定拉活(高频触发)Service拦截策略(含startService和bindService)ContentProvider拉活注册ContentProvider,其他应用访问时自动唤醒:daemonContentProvider广播拦截AccountManager同步利用系统账户同步机制定期唤醒(同步间隔≥60秒)

2025-07-14 22:34:40 995

原创 功耗校准数据PowerProfile测试方法建议

场景步骤版本:xxxxA1A2结果(mA)

2025-07-12 21:03:13 12745

原创 AOSP自启动拦截框架Intent Firewall

Intent Firewall是AOSP提供一套匹配自启动拦截框架,主要核心逻辑在service的firewall目录,拦截逻辑核心类是IntentFirewall,但AOSP的逻辑仅仅包含activity、service和broadcast简单根据配置文件名单拦截逻辑,且aosp没有提供配配置文件,故相当于功能没有生效。

2025-07-10 21:26:56 323

原创 Linux cpuidle framework(1)_概述和软件架构

在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指令(Fetch)、译码(Decode)、执行(Execute)。那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊。确实,是要停掉,但何时停、怎么停,却要仔细斟酌,因为实际的软硬件环境是非常复杂的。我们回到Linux kernel上,Linux系统中,CPU被两类程序占用:一类是进程(或线程),也称进程上下文;另一类是各种中断、异常的处理程序,也称中断上下文。

2025-07-08 08:00:00 956

原创 应用标签思路参考

基于pid维度建立1.应用使用资源标签例如sensor,gps,bluetooth,audio,NFC,camera, 麦克风等,2.应用状态标签例如是否可见,前台,后台,上传下载等,3.应用和系统关联的标签例如widget,画中画,悬浮窗,知通栏等,为应用冻结,关联启动,CPU锁托管,查杀应用,限制应用的IO等快稳省策略提供标签支撑。2.基于位掩码操作例如|= 添加状态,&= ~ 清除状态,^ 检测变化管理20多个标签值,&的方式确定标签状态的值,可高效低内存获取应用的单个或多个标签状态。

2025-07-05 20:54:37 433

原创 应用标签中下载场景的思路参考

这里的接口我直接从源码的BatteryStatsImpl.java中参考,分别批量获取所有UID对应的wifi和数据流量大小,然后合并uid对应的wifi+数据的总流量大小。使用应用宝下载,下载流量速度和我前台可见差不多。基本够用,后续规避一些游戏应用后台下载场景,避免误杀和误冻结等。备注:联网其实是不稳定的,我们有时需要结合次数+(网速或流量大小)维度,进一步评估是否为下载场景,提高准确度。2.从流量大小的角度定于开始下载和停止下载的阈值。1.从网速的角度定于开始下载和停止下载的阈值。

2025-07-03 20:04:43 335

原创 HW冻结的三态机制设计思想参考

资源分级释放通过running→idle→freeze的分层过渡,确保冻结前释放非关键资源(如网络连接),避免强制杀进程导致数据丢失延迟窗口防误杀3秒延迟检查可捕获短暂活跃任务(如后台播放音乐),减少误冻结概率状态原子性冻结态通过STATE_FREEZE标签锁定,类似三态门的高阻态,确保资源彻底隔离核心流程解析(1) 状态定义与标签更新None:初始状态,无标签。Running:对应STATE_RUNNING标签,活跃态下执行ActionRunning.performAction(true)设置标签为tru

2025-07-01 21:26:32 379

原创 ANR的分析思路

bugreport 或者 /sys/kernel/debug/binder/ 下文件过滤:outgoing transaction,incoming transaction,BINDER TRANSACTIONS,BINDER TRANSACTION LOG。event log:binder_sample: 监控每个进程的主线程的 binder transaction 的耗时情况, 当超过阈值时,则输出相应的目标调用信息。(前台 10s,后台 60s)(前台 20s,后台 200s)

2025-06-29 14:01:59 803

支持左右箭头显示与控制的水平滚动

功能介绍: 1.支持左右滑动自定义水平ScrollView滚动功能; 2.左右滑动中相应箭头图标显示; 3.点击左箭头图标控制左滚动; 4.点击右箭头图片控制右滚动; 使用场合:当水平方向内容放不下时,提醒用户后面还有更多的内容 ^_^ su 2014-12-24");

2014-12-24

登录界面(UI漂亮)

功能介绍 1.注册账号使用SharedPreferences本地保存账号和密码 2.注册账号设置空时,控件有抖动特效 3.本地账号和密码验证登录 4.自动登录功能 5.UI界面美观大方,可以提供参考

2014-12-24

多点触控(图片旋转与缩放

目前Google开放的API多指手势只有缩放可以直接调用,下面是一位外国大牛写的2指旋转的手势检测器。代码风格非常炫。程序支持图片缩放和旋转,并改变透明度。方便急需寻找多点手势的你提供帮助

2015-04-11

高德地图轨迹回放

地图轨迹回放包含下面功能 1.轨迹回放播放 2.轨迹回放暂停 3.轨迹回放速度增大 4.轨迹回放速度减小 5.轨迹回放中文地址显示 6.支持进度条控制轨迹回放 注:使用时替换相应地图key即可,提供Json模拟数据,保证运行

2014-12-17

获取app版本_包名_入口Activity

本demo用途:主要用于查看手机中应用程序的包名、入口Activity和版本信息。^_^

2015-01-21

消息通知栏demo

以下为程序启动流程: 1.开机启动AlarmService 2.AlarmActivity一秒后发送一条系统广播 3.AlarmService接受该系统广播 4.请在系统状态栏查看接收到的消息 5.单击消息,取消通知栏信息 6.但程序关闭时,单击消息,重启程序 小知识:BroadCast、Service、Notification,初学者适用

2014-12-22

世界时区转换的demo

项目中出现app在非洲国家使用时,发生时间显示错,后来一问才知道,外国人使用的时间数据是由公司服务器按北京时间发送的,故接收时进行时间的时区校准

2014-11-29

Activity传递对象的3种方法(全)

使用3种方法完成一个对象的传递 demo种的对象包含如下类型int、String、boolean、数组、ArrayList、UUID、float类型,代码简单易懂,方便理解

2014-11-28

AIDL通信(含2个客户端1个服务端)

代码简洁,重点突出多进程或多app调用AIDL服务完成通信,内容如下: 1.AIDL服务端 支持多客户端调用AIDL服务端,并广播发送数据给客户端 2.AIDL客户端 示例中的2个客户端都同时绑定AIDL客户端 发送数据,并显示AIDL服务端传递的数据 注:方便初学者了解AIDL通信,简单易懂

2015-01-15

高德地图轨迹回放(支持GPS纠错处理)

地图轨迹回放包含下面功能 1.轨迹回放播放 2.轨迹回放暂停 3.轨迹回放速度增大 4.轨迹回放速度减小 5.轨迹回放中文地址显示 6.支持进度条控制轨迹回放 7.支持对GPS原始数据的纠错处理 注:使用时替换相应地图key即可,提供Json模拟数据,保证运行

2014-12-17

录音和声音(含话筒)

1.AudioRecorder进行录音 2.录音过程中话筒会随着音量大小改变图片 3.AudioTrack实现声音播放 su 2014-12-26

2014-12-26

录音和播放(含话筒效果)

1.使用MediaRecorder完成录音功能 2.在录音的过程中,话筒根据音量大小而改变 3.使用MediaPlayer完成播放录音功能(但不支持话筒效果) 4.代码简单适合初学者参考 2014-12-26

2014-12-26

常用输入框正则验证

使用正则运算,完成对输入框内容的验证,包含下面内容验证: 1.用户名 2.密码 3.服务器IP或域名 4.服务器端口 5.邮箱地址 6.固定电话或手机号码 7.车牌号

2014-12-28

Andorid引导欢迎界面(代码简单)

app引导界面,提供软件介绍。代码简单,方便参考和移植到自己的项目中去

2015-01-12

使用AIDL发送数据

程序流程: 1.点击启动服务按钮; 2.不断发送“Hello world AIDL通信测试!”给AidlService 3.发送成功显示:发送的数据(从服务回调数据上来) DOMO目的:运用AIDL发送数据");

2014-12-24

Gjosn(围栏列表)

1.主要使用json对json对象列表数据进行解析 2.解析结果通过listView展示 (界面整洁,漂亮)

2014-12-05

定时器的4种方法

Android定时器的4种方法: 1.采用 Handler 与线程的 sleep(long )方法 2.采用 Handler 的 postDelayed(Runnable, long) 方法 3.采用 Handler 与 timer 及 TimerTask 结合的方法 4.使用CountDownTimer倒计时类"

2014-12-30

上拉刷新(简单易懂)

运行时add library下lib-pull的库工程即可

2015-01-12

数据库SQL基本操作(初学者)

完成数据库操作的基本功能,按顺序如下 1.新建数据库文件(含删db文件) 2.新建数据库表(含删数据库表) 3.添加数据 4.删除数据 5.修改数据 6.查找数据

2015-01-24

二维码扫描

使用zXing的jar包完成二维码条码扫描,优点直接项目移植即可

2014-12-27

软件开发项目实践指导书

本模型描述了WRUP的最佳实践方式 。它本身也是一套有效的部署经过验证的商业化软件的开发方法 。之所以称为“最佳实践”,不仅仅是因为他们具有可以量化的价值,并且被许多成功的机构,成功的项目所运用,并且在Sundy的十年开发生涯中不断积累的结果 。

2015-04-12

丢失api-ms-win-crt-runtime-l1-1-0.dll解决

1. 把api-ms-win-crt-runtime-l1-1-0.dll下载到电脑 2. 直接拷贝该文件到系统目录里:C:\Windows\System32目录下,64位系统为:C:\Windows\SysWOW64 3. 最后在开始菜单中找到“运行(R)” 或者按快捷键“Win+R”,在弹出的框内输入“regsvr32 api-ms-win-crt-runtime-l1-1-0.dll”(不含双引号),回车即可解决错误提示!

2018-01-05

Android Excel 操作实例demo

使用jxl.jar进行Excel格式的文件数据存储,方便进行新增表头属性行和列,但是存储越大存储耗时也拉长

2018-07-30

JobScheduler演示实例(注释)

JobScheduler的Google演示实例DEMO,个人学习笔记用,放了些注释,便于理解。

2017-11-23

mysql的图形化操作工具navicat

免安装版本,解压直接运行,安装包里面有key,输入即可

2018-01-06

ReciteInterviewQuestions_v1.0.3.rar

目的:主要是供个人地铁或公交路上,做一些自己整理的面试题。 例如目前比较感兴趣的java、android、算法、系统、正则表达式相关的面试题。方便地铁利用手机记忆用途

2021-12-27

重复文件RecycleView列表和交互逻辑实现

0. 重复文件的UI和删除交互和逻辑实现 1. 树形无限层级列表-RecyclerView实现 2. 支持递归更新选中状态 3. 支持递归计算文件大小 4. 支持递归删除 https://editor.csdn.net/md?not_checkout=1&articleId=118279169

2021-06-27

AlphabetList.rar

Android字母列表的实际运用:提供根据字母排序列表,方便用户快速找到自己需要的内容.主要功能如下: 1.实现列表按字母进行排序 2.滑动列表同步更新侧边字母栏的选中事件 3.侧边字母栏点击同步更新List的内容显示 4.快速滑动时,视图中间显示字母小框 5.提供搜索输入框进行快速查询

2020-05-17

TreeListViewDemo.rar

1. 树形无限层级列表-RecyclerView实现 2. 支持递归更新选中状态 3. 支持递归计算文件大小 4. 支持递归删除

2021-06-26

最近应用使用情况列表

通过UsageStatsManager获取最近应用使用时长和运行时长

2017-10-25

PyDev4.5 对应Jdk7

下载地址: https://sourceforge.net/user/newsletters/subscribe Eclipse 4.5, Java 8: PyDev 5.2.0 Eclipse 3.8, Java 7: PyDev 4.5.5 Eclipse 3.x, Java 6: PyDev 2.8.2

2018-01-03

GridView的页眉页脚

ListView或GridView的页眉页脚的渐变模糊特效 提升用户体验

2015-08-21

摇一摇(ACC参数展示和位置提示)

显示设备名称,供应商,功率,实时显示x\y\z轴的加速度变化,并提示例如当前手机水平放置,左右翻(适合左右切歌调用)等等,非常实用当达到预设ACC系数时,震动一下。 非常适合平时的调试开发和参考

2015-04-12

装饰者模式Demo

具体描述上传到这里哦 http://blog.csdn.net/su749520/article/details/78586074

2017-11-20

ScheduleAalarmDemoApk.rar

使用TimePicker进行时间选择器,并使用Alarm闹钟的setExact进行精准定时。并使用消息通知显示,防止service优先级下调,导致alarm事件被拦截

2020-06-01

设计模式-命令模式

设计模式-命令模式,这里是《Head Fist 设计模式》一书中的练习

2017-11-22

简单的手势输入画板

一个简单的任意涂鸦的手势画板,代码简单马上懂而已。

2015-04-25

WiFi省电Demo

本WiFi省电Demo作用: 主要使用场合:在屏幕关闭或休眠状态下,根据网络状态,智能关闭WiFi开关,辅助省电的目的

2015-07-29

抽象工厂模式Demo

来自《Head Fist 设计模式》一书的实例,个人学习笔记用途

2017-11-18

实用定时器Alarm机制

1.TimePicker进行时间的选择 2.AlarmManager 进行定时任务的设置 3.广播进行数据的应答

2015-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除