- 博客(997)
- 收藏
- 关注
原创 解锁万物互联:物联网移动端开发技术架构与方案全解析
离家后,随时查看家中安防摄像头;(Swift/Kotlin/Java/Objective-C) - 性能最佳,体验最流畅,深度集成系统特性(通知、后台、传感器),适合对性能和交互要求极高的应用。构建成功的物联网移动应用,需要深入理解其特有的分层架构(UI、逻辑、网络、数据、设备集成),在实时通信(MQTT/WebSocket)、安全、跨平台选型、性能优化、离线支持等关键环节做出明智选择和精细设计。清晰管理应用状态(用户登录态、设备列表状态、当前设备状态、UI状态等),确保状态变更可预测、可追踪、易于测试。
2025-07-21 08:16:36
490
原创 安卓生态大裂变:谷歌合并ChromeOS,华为鸿蒙游戏亮剑
未来,Chromebook和安卓平板都将运行Android系统,而非独立的ChromeOS。在7月举行的ChinaJoy上,华为高调展示了其游戏生态成果:50余款原生游戏亮相,从《王者荣耀》到《植物大战僵尸3》,头部游戏的鸿蒙版本集体登场。“华为拒绝硬核联盟模式,本质是看透了安卓游戏生态的三大死穴:套壳导致的技术受制、分成依赖的不可持续、碎片化带来的体验割裂。同时,谷歌承诺将继续为ChromeOS用户提供“无与伦比的安全性、一致的外观和体验以及广泛的管理功能”,这对企业和教育机构至关重要。
2025-07-18 08:00:11
1003
转载 Android Gson自定义类型适配器的高级应用场景原理剖析
在Android开发中,Gson的默认序列化和反序列化机制虽然能处理大部分常见数据类型,但在面对复杂业务需求时存在局限性。例如,避免在适配器中使用非线程安全的成员变量,或者对共享资源进行适当的同步控制。:确保自定义适配器处理的类型与实际传入的类型一致,否则可能会导致序列化或反序列化错误。,直接操作对象字段,避免反射带来的性能损耗。:在处理集合类型时,如果可能,尽量采用批量写入或读取的方式,减少方法调用次数。方法中,对读取到的邮箱地址进行格式校验,如果不符合要求则抛出异常,确保反序列化后的数据是有效的。
2025-07-14 08:11:41
17
转载 Android Gson复杂数据结构(如Map、List)的序列化逻辑原理剖析
Gson作为常用的JSON处理库,其对复杂数据结构的序列化能力至关重要。准确处理这些结构能确保数据在网络传输、本地存储等场景下保持完整的语义和结构,避免数据丢失或格式错乱。通过持续优化和功能扩展,Gson将继续为Android开发者提供高效、可靠的复杂数据结构处理方案。:过深的嵌套结构会增加递归调用层数,影响性能。:Gson要求Map的键类型必须为基本类型或。:与List类似,根据值的类型递归调用相应的。:在异步场景下优化复杂结构的序列化性能。:对于嵌套结构,递归调用序列化逻辑。
2025-07-03 08:02:58
32
转载 Android串口开发:粘包半包的原因以及处理思路,缓冲区处理,以及超时清空缓冲区....
比如厂商主动开放Root权限,我们才能进行设备驱动,才能进行串口开发,进行数据的传输,从而实现软件控制硬件的联动,并且这些android设备,往往会提供更多的接口去和硬件通讯,比如串口,a和b,tx和rx。只知道拿来进行使用,只能使用别人封装好的,导致如果下位机更换了,就不知道如何去对接了,出现拆包,粘包,就不知道如何去使用了。拿到数据以后,就解析头和尾,取出数据,如果尾没有,可以判断为是半包,需要先把前面的数据存储起来,继续从串口里面拿数据,进行拼接。流控,简单理解,就是控制数据收发的频率。
2025-06-26 08:04:46
63
转载 Android大厂面试通关秘籍:深度剖析技术原理与源码
从 Android 系统的基础架构和启动流程,我们明白了系统的底层原理和运行机制,这为我们开发出更稳定、高效的应用奠定了基础。以下是一个简单的 MVVM 示例。作为 Android 开发者,我们需要不断学习和掌握新的技术和知识,紧跟技术发展的潮流,才能在激烈的竞争中脱颖而出,开发出更加优秀的 Android 应用,为用户带来更好的体验。新特性和架构模式的探索,如 Android Jetpack 和 MVVM 架构模式,让我们能够跟上技术发展的步伐,使用更先进的工具和方法来开发应用,提高开发效率和代码质量。
2025-06-17 08:16:22
33
转载 Android里面的Activity生命周期特殊调用进阶思考
1. finish() 的调用与标记 • 调用 finish() 会设置 Activity 的 mFinished 标志位,并通知 ActivityManagerService(AMS)销毁该 Activity。在 Android 中,当 Activity 的 onCreate 方法中调用 finish() 时,其生命周期会直接跳转至 onDestroy,而不会触发 onStart 和 onResume。当调用 finish() 后,Activity 被标记为 mFinished = true。
2025-06-16 07:50:47
29
转载 Android拦截其它播放声音:内录音,外录音,录屏,剪辑,混音,一键制作大片全搞定
Android 多媒体,音视频领域,虽然还是在应用层开发领域,但是要熟练掌握它,并不容易,因为它不仅仅是需要掌握好涉及到的相关api就能完全理解了,需要理解数字音频知识,数字图像视频知识,还需要对音视频的编解码规则掌握好才能算是彻底理解。从物理学上讲,声音量化成数字信号是一条波形,2条波形混到一起,就是把两条波形数据相加,但是相加得到的结果新的声音波形,它的振幅即声音不能超过数字信号的最大最小值范围,这里的范围是 -32768-32767,超过了就是刺耳的电流噪音了。
2025-06-09 07:58:55
73
转载 Android监听开机自启,是否在前后台,锁屏界面,息屏后自动亮屏,一直保持亮屏
设计该APP的目的是:让这个APP 只监听开机,监听到后打开广告app,该App可定义设置界面,配置打开那个广告app。在Android 广告屏设备开发中,大部分广告厂商开放式设计,广告的内容是单独的APP,只有很少一部分直接把Launcher做成广告屏app,所以,常常设计到开机自动启动APP,如果广告屏是触摸屏,被人玩耍,当游客走后,需要从不在广告屏界面,返回,或者在其他应用程序下自动切换到广告屏界面,有时候还可能涉及到锁屏到亮屏的处理。如何监听锁屏,息屏,亮屏,自动点亮屏,一直保持亮屏。
2025-06-07 10:10:05
60
原创 Android项目Gradle构建目录统一配置
文件,统一重定向所有子模块(module)的构建输出目录。此方案集中管理构建输出,便于清理和查看构建结果,同时保持模块原始代码目录的整洁。Android Studio 可能不会自动刷新新目录结构,需手动点击。部分插件可能依赖默认路径,修改后需测试构建是否正常。在 Android 项目中,可以通过修改根项目的。输出面板可能仍显示旧路径(但文件实际在新位置)。:执行 Gradle 清理任务。2. 排除特殊模块(可选)构建完成后,IDE 中的。关注我获取更多知识或者投稿。目录,无需额外配置。
2025-06-03 08:00:32
446
转载 Android后台进程限制机制深度解析
通过本方案的系统级优化,可有效控制后台进程数量,提升系统流畅度20%以上,内存占用降低30%-50%。:限制隐式广播接收(ACTION_TIME_TICK等例外)ActivityManagerService核心方法。:后台应用无法创建长时间运行的服务(约1分钟超时):过严限制可能导致频繁冷启动增加功耗。:根据设备内存大小动态设置默认值。:需兼容厂商定制ROM的特别实现。:保留必要后台服务(如消息推送):根据前台应用需求动态放宽限制。关注我获取更多知识或者投稿。长期未使用应用重置权限。1.1 版本特性对比。
2025-05-26 07:59:02
200
转载 Android里面的的ASM插桩进阶思考
源码,开发者可以深入理解插桩过程,优化插件性能并扩展功能(如支持增量编译、多线程处理)。:Transform 按优先级排序,如 ProGuard 混淆在插桩之后执行。:将文件处理任务拆分到多个线程,提升 Transform 阶段速度。(如性能监控、埋点统计、热修复等)的核心技术。文件,传递给下一个 Transform 或打包进 APK。:需确保操作后的栈帧状态合法(局部变量表、操作数栈平衡)。:将原方法代码替换为代理方法的调用(需结合类加载机制)。:在访问类的过程中修改结构(如插入方法调用)。
2025-05-19 08:02:26
99
转载 Android Dalvik虚拟机内存参数优化指南
通过合理的Dalvik虚拟机参数配置,可使4GB内存设备的应用启动速度提升30%以上,GC暂停时间减少40%,显著改善用户体验。建议设为设备总内存的1/8到1/4,需与heapgrowthlimit保持合理比例。值越大内存利用率高但GC频繁,游戏类应用建议0.6,常规应用0.75。需与heapminfree保持合理梯度,大内存设备建议16m-32m。大内存设备可提升至16m,小内存设备保持5m-8m。常规应用最大堆限制,防止单个应用过度消耗内存。根据应用内存波动调整,视频类应用建议2m以上。
2025-05-16 08:05:43
128
转载 RuStore:解锁俄罗斯应用市场|线上活动正式开启!
在海外应用与游戏市场的众多选择中,俄罗斯凭借其迅速扩大的市场规模、活跃的用户群以及可观的商业潜力,成为了中国移动开发者备受关注的新目标。在过去三年,RuStore作为俄罗斯安卓应用商店领域迅速崛起的新星,不仅打破了国际应用商店的垄断格局,更为海外开发者提供了精准、高效的市场入口。2025年5月15日,RuStore特别策划的解锁俄罗斯应用市场线上专场活动,将为你一站式解答这些问题,助你快速实现俄罗斯市场的入局与变现!现在就报名,一起抓住俄罗斯市场的红利期,开启全球增长新阶段!
2025-05-13 07:58:52
93
原创 Android硬件信息获取方法总结
其实在折叠屏没出现的时候,判断手机或者是平板使用上述方法还是够用的,但是在折叠屏面前就显得信心不足了,折叠屏一展开,那就是一个长着平板脸的手机,为了识别折叠屏,Android10出来了一个新的感应器类型。以下是一些常见的 Android 硬件信息获取方式,涵盖设备基本信息、传感器、存储、网络等模块。Android中没有提供特定的方法来判断设备是手机还是平板,只能通过别的方式来间接判断,比如通过判断屏幕尺寸。同样的没有任何api可以直接去判断设备是否有root权限,我们只能从以下几个方式去判断。
2025-05-13 07:58:52
635
转载 Android PMS 提升开机速度优化方案
通过上述多线程优化方案,可在Android 10系统上实现APK扫描速度的显著提升。关键点包括动态线程分配、线程安全控制、负载均衡策略及完善的异常处理机制。建议结合设备实际硬件配置调整线程参数,并通过系统级测试验证优化效果。:PMS在开机时单线程扫描APK导致启动延迟。:利用多线程并行解析APK文件。基于CPU核心数动态分配线程。6.2 SELinux策略。关注我获取更多知识或者投稿。线程安全的APK解析队列。7.2 自动化测试用例。2.2 任务分发策略。4.1 负载均衡策略。5.1 错误隔离策略。
2025-05-08 07:47:22
71
转载 Android Gradle 优化大全,助力提速 80%
所有可能影响 task 的变量,包括但不限于所有入参,task 实现,buildSrc 源码,gradle 版本,JVM 版本,都会被加入计算,得到一个 string 类型的 cache key。Gradle configuration cache 指的是配置阶段的缓存,当执行过一次某个任务时,下次执行可以跳过配置阶段,直接进入 Execution 阶段。task 也分为初始化阶段和执行阶段,我们需要在 task 创建时,把需要的变量存储并声明为 @Input,从而实现执行阶段访问 project 对象。
2025-05-05 08:49:23
145
转载 Android应用使用时长监控优化方案
通过系统级服务监听与精准使用统计的结合,可在Android 5.0+设备上实现高可靠性的应用使用时长监控。建议采用异步任务处理机制优化性能,结合动态权限管理确保合规性,最终通过加密存储保障数据安全。该方案已通过Android兼容性测试套件(CTS)验证,适用于企业级设备管理场景。1.1 使用UsageStatsManager替代进程轮询。1.2 实现系统级应用状态监听服务。7.2 SELinux策略优化。关注我获取更多知识或者投稿。1. 系统架构设计优化。2. 关键功能优化实现。2.2 数据持久化存储。
2025-04-24 08:03:10
137
转载 Android应用启动退出监听优化方案
通过系统级服务监听与应用级增强方案的结合,可在Android 10+系统中实现高可靠性的应用状态监控。建议采用事件驱动架构替代轮询机制,结合系统广播增强功能,在保证性能的同时实现精准监听。该方案已通过CTS兼容性测试,适用于企业级设备管理系统。2.1 修改ActivityTaskManagerService。实时监听指定应用的前后台切换。6.2 SELinux策略。2.2 实现系统服务监听。4. 系统广播增强方案。4.1 自定义系统广播。7.1 自动化测试用例。2. 系统级实现方案。3. 应用级增强方案。
2025-04-21 07:56:32
132
原创 如何查找项目中未使用到的图片
该脚本可以帮助开发者快速定位未使用的图片资源,有效减少 APK 体积。支持常见图片格式:PNG/JPEG/WEBP/SVG/AVIF/VectorDrawable。脚本结果可能有误报(如动态生成的资源名),建议人工确认。建议结合 Android Lint 的实现机制,参考。检查代码(Kotlin/Java)和布局文件中的引用。2. 核心检测逻辑(Kotlin 实现)类进行深度集成,可获得更好的检测效果。自动跳过 launcher 图标 (2. 引用检测(使用 PSI 解析)如需检测多模块,修改。
2025-04-14 07:58:59
332
转载 Android常见性能问题以及优化策略分析——入门指南
可以使用 ProGuard 等工具对代码进行混淆和优化,去除无用的代码和资源。应用中使用了大量的高清图片、图标等资源,会使安装包体积增大。在进行多渠道打包时,如果没有对资源进行合理的配置和优化,会导致不同渠道的安装包中存在大量重复的资源。:Handler、Runnable等内部类隐式持有外部类(如Activity)的引用。使用 Gradle 的多渠道打包功能,对不同渠道的资源进行差异化配置,避免资源冗余。引入的第三方库可能包含了一些不必要的代码和资源,导致安装包体积膨胀。
2025-04-09 08:11:37
116
转载 Android 车机 Car模式原理
这个系统为汽车特定要求、功能和技术提供了支持,通过在原先的Android系统架构上增加与车相关的模块来实现,这些模块包括Car App(包括OEM和第三方开发的App)、Car API(提供给汽车App特有的接口)、Car Service(系统中与车相关的服务)等。IVehicle服务是Android Automotive在硬件抽象层的一个核心native服务,用于处理和车辆相关的功能,并为系统提供获取车身信息以及设置相关状态的接口。系统自动编译sdk,编译时引用即可,系统运行时,已经加载了这些类库;
2025-03-31 08:00:30
176
原创 谷歌决定终止开源Android以及对开发者的影响
对于主流手机厂商而言,短期内因已签署相关协议,仍可获取最新Android源代码,获得GMS认证等,受影响较小,但长期来看,可能会影响其系统创新能力和差异化竞争优势。对于第三方ROM开发者来说,获取最新代码将变得困难,开发可能陷入困境,进而影响Android系统的碎片化问题,使不同版本和定制的Android系统之间兼容性变差。谷歌对Android的维护分为公开的AOSP分支和内部闭源分支,公开分支向全球开发者开放,内部闭源分支仅供签署了GMS(谷歌移动服务)协议的厂商使用。谷歌决定终止开源Android。
2025-03-27 15:41:46
1131
原创 鸿蒙Next性能优化分析
综上所述,通过对不同性能问题场景的分析,利用 DevEco Studio 等工具进行性能监测,结合相应的优化建议和代码示例,可以有效提升鸿蒙 Next app 的性能。:使用内存分析工具获取应用运行过程中的内存快照,截取内存快照图,图中显示大对象占用了大量内存,且在删除对象后内存没有及时释放。:在界面上频繁点击更新列表数据,使用性能分析器记录界面渲染的帧率,截取帧率图,图中显示帧率较低,界面渲染卡顿。:再次进行相同操作,记录帧率,截取优化后的帧率图,可看到帧率明显提高,界面渲染更加流畅。
2025-03-22 09:18:52
1121
原创 Android MQTT使用及常见问题解决方案
通过以上实现和注意事项,可以在 Android 应用中稳定高效地集成 MQTT 通信功能。协议版本不匹配(如服务器要求 MQTT 3.1.1):使用自定义 SSLSocketFactory。MQTT 回调在非 UI 线程执行,需使用。:Activity 销毁后回调仍然执行。:收到重复消息(QoS 1/2 场景)QoS 等级设置过低(0)关注我获取更多知识或者投稿。:发布消息后订阅端未收到。一、MQTT 基础使用。:使用前台服务保持连接。实时数据:QoS 0。重要通知:QoS 1。关键指令:QoS 2。
2025-03-18 08:06:40
1037
转载 Android 优化之 查找so 文件的来源
有时候我们需要优化apk的包体积大小。一个so文件大小有10M。但是我们并不知道so文件是那个库引入的。点击gralde菜单,找到任务mergeXXXZZZNativeLibs 双击执行就行了。XXX是你的风味名称,ZZZ是你的编译类型。在参考网上现有方法,加上自己测试以后。而且在gradle 8.4.2都可以成功。相信大家都可以成功。需要配置到根目录的build.gradle文件中,需要配置到allprojects中。所有的so文件都打印出来了,搜索一下就行了。关注我获取更多知识或者投稿。
2025-03-14 08:02:40
106
原创 DeepSeek推荐:Android线程使用与注意事项总结
在 Android 开发中,线程(Thread)的正确使用对应用的性能和稳定性至关重要。以下是Thread 的使用技巧与注意事项,结合 Android 系统的特性进行总结:一、使用技巧主线程(UI 线程)与子线程分工明确主线程:处理 UI 更新、用户交互等轻量级操作,不可执行耗时任务(如网络请求、数据库读写),否则会触发ANR(Application Not Responding)。子线程:...
2025-03-11 07:58:51
1007
原创 鸿蒙Next-应用检测、安装以及企业内部商店的实现
一、企业内部应用检测和更新升级 A应用检测是否安装B应用canOpenApp():boolean{ try{ letlink ='schB://com.example.test/open';// 替换成你目标应用的link串儿 letcanOpen = bundleManager.canOpenLink(link); console.l...
2025-03-07 08:44:39
1147
原创 Android常见性能问题与优化策略分析
1. 内存泄漏(Memory Leak)场景与原因:静态变量持有Context:静态对象(如单例)长期持有Activity引用,导致Activity无法回收。匿名内部类:Handler、Runnable等内部类隐式持有外部类(如Activity)的引用。未释放监听器或广播:注册的广播接收器(BroadcastReceiver)或事件监听未在组件销毁时注销。资源未关闭:文件流、数据库连接未及时关闭...
2025-03-06 07:58:36
692
原创 鸿蒙Next-AttributeModifier结合@Styles和@Extend深度解析使用
一、概述声明式语法引入了@Styles和@Extend两个装饰器,可以解决复用相同自定义样式的问题,但是存在以下受限场景:@Styles和@Extend均是编译期处理,不支持跨文件的导出复用。@Styles仅能支持通用属性、事件,不支持组件特有的属性。@Styles虽然支持在多态样式下使用,但不支持传参,无法对外开放一些属性。@Extend虽然能支持特定组件的私有属性、事件,但同样不支持跨文件导...
2025-03-03 08:00:56
990
原创 Android SDK封装与发布实战指南
一、SDK架构分层实现1. 业务调用层(API层)作用:对外暴露简洁的调用接口示例:入口类设计publicclassMySDK{ privatestaticvolatileMySDK instance; privatefinalContext appContext; privatefinalSDKConfig config; // 私有构造方法 ...
2025-03-02 08:01:07
609
转载 Android App 厂商角标适配
一、背景本篇介绍一下笔者在维护IM应用时,设置App角标的相关经验。同时这里设置角标都是基于系统厂商的Launcher,没有适配三方的Launcher应用,因为我们统计下来发现近些年使用三方Launcher应用比较少了,大部分用户还是以系统Launcher为主。所在在我们的项目中,主要是适配各个厂商。二、厂商角标设置规则华为Bundlebundle =newBundle();bundle...
2025-02-26 08:15:52
139
原创 鸿蒙Next-方法装饰器以及防抖方法注解实现
以下是关于鸿蒙Next(HarmonyOS NEXT)中MethodDecorator的详细介绍及使用指南,结合了多个技术来源的实践总结:一、MethodDecorator 的概念与作用MethodDecorator是鸿蒙Next框架中用于装饰类方法的装饰器,属于ArkUI 装饰器体系的一部分。它允许开发者为类方法动态添加元数据或功能扩展,例如实现方法拦截、状态监听、日志记录等场景。通...
2025-02-24 07:59:05
560
原创 DevEco Studio常用快捷键以及如何跟AndroidStudio的保持同步
DevEco Studio快捷键DevEco Studio是华为推出的用于开发HarmonyOS应用的集成开发环境,它提供了丰富的快捷键以提高开发效率,以下为你详细介绍不同操作场景下的常用快捷键:通用操作快捷键操作描述Windows/Linux 快捷键Mac 快捷键打开设置窗口Ctrl + Alt + SCmd + ,搜索动作(可搜索各种功能、命令等)Ctrl + Shift + ACmd + ...
2025-02-22 14:37:18
707
原创 Deepseek推荐:Android 开发者需要掌握的系统知识大纲
一、操作系统基础1. Linux 内核机制内容介绍Android 基于 Linux 内核,核心机制包括进程管理、内存管理、文件系统、Binder 驱动等。使用场景多进程应用(如后台服务与前台 UI 分离)。排查内存泄漏和 Native 层崩溃。跨进程通信(AIDL、ContentProvider)。原理进程调度:Linux 的 CFS(完全公平调度算法)管理线程优先级和时间片分配。内存管理:虚拟内...
2025-02-20 08:06:37
892
原创 深入探索ArkUI @Builder与@BuilderParam的进阶应用
一、构建器双雄:理解设计哲学在ArkUI的组件化开发体系中,@Builder和@BuilderParam这对装饰器组合扮演着UI模块化的重要角色。二者的差异与配合体现了声明式UI的核心思想:@Builder是UI的构造工厂,通过函数式封装将UI片段转化为可复用的模板。其本质是创建可组合的UI构建单元,类似React中的Render Props模式,但通过装饰器语法实现了更直观的表达。@Buil...
2025-02-17 08:28:20
489
原创 鸿蒙Next开发-普通函数和箭头函数 this指向的区别以及对UI刷新的影响
问题场景在项目中使用如下代码订阅全局事件AppUtil.getContext().eventHub.on('theme',this.eventFunc);eventFunc(theme:number){this.xxx}//普通方法这样实现this 的指向是调用该方法的对象即AppUtil,则不会触发UI的刷新,找原因找半天原来是this 的问题 还以为是@State的注解使用有问题正确使...
2025-02-15 07:30:24
584
原创 Deepseek赋能Android开发
集成SeepSeek步骤1:获取DeepSeek API Key登录:https://platform.deepseek.com/api_keys%EF%BC%8C%E6%B3%A8%E5%86%8C%E8%B4%A6%E5%8F%B7%E5%90%8E%E8%8E%B7%E5%8F%96API,注册…Key,请务必记得:【复制保存】!注:可在左侧【用量信息】查看你的API使用情况 &...
2025-02-14 08:36:21
1424
原创 鸿蒙Next开发-添加水印以及点击穿透设置
在鸿蒙Next中,为App全局添加水印可以通过以下方式实现,其中通过窗口添加水印是一种常见且高效的方式。以下是具体方案和实现细节:一、全局水印的实现方式1. 窗口叠加水印(首选、推荐)原理:在应用的主窗口(Window)上叠加一个半透明的水印层,覆盖所有页面内容。优势:实现简单、性能较好,无需侵入业务逻辑。实现步骤:(1) 创建全局水印组件通过Stack布局在主页面内容上叠加水印层,通过设置hit...
2025-02-13 07:59:00
752
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人