在多年的迭代和升级工作中,组件化项目越来越庞大(几十个模块,近10个第三方播放SDK),直接导致发版困难、方法数超标、工作效率大大降低,质量问题频发等等。项目迫切需要一套方案来解决这些问题。由于我们是自行研发的系统和主板,如果直接使用第三方框架,可能会引起相关的适配问题而不好解决,所以需要实现一套自己的插件化框架,也便于后期进行更多的定制。于是进行了下面粗浅的研究。项目是影视类项目,引进了很多第三
转载
2023-11-05 20:43:04
74阅读
本发明涉及Android应用开发和维护领域,特别涉及一种基于Android的动态布局方法及系统。背景技术:随着移动互联的高速发展以及智能手机的普及,越来越多的传统和非传统行业逐渐步入了智能化移动化的工作新模式,通过Android应用来完成日常生活工作也越来越普遍,因此Android应用需求爆发式增长。在Android应用开发和维护中,界面动态布局能够有效的兼容各种应用场景,简化维护工作,有效灵活的
转载
2023-07-26 12:12:54
131阅读
这里的服务指的是接口API,在代码解耦中,有一种非常重要的方法就是“面向接口编程”,面向接口编程使得协作的模块之间只需要关注接口API,而无需关注API的具体实现。一套好的面向接口编程架构应该至少包含两个方面:简洁通用的接口定义,以及无迹可寻的接口实现。本文介绍的是基于动态代理实现的服务框架,作用场景可以是APP模块化开发或者SDK开发。先从动态代理说起Java的代理模式可以分成静态代理和动态代理
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师。 需求驱动 2014年,随着业务发展需要和携程无线部门的拆分,各业务产品模块归属到各业务BU,
背景由于Android 应用规模越来越大,程序业务越来越复杂,一个细微的修改,就需要打包重上面,这对一个大型企业来说,无疑是不利的,对用户来说,频繁的更新也让人很厌烦,对程序员来说打包akp,在运行时,在方法数,临近阀值,会报65535的错。在这种情况下,动态加载技术就应运而生,在移动互联网技术日渐成熟,Android程序员技能越来成熟的情况下,可以预见的未来,插件化开发,将会是解决Android
转载
2024-04-08 11:31:31
29阅读
摘要:随着移动设备融入日常生活,移动应用程序可以访问个人数据和网络,从而造成了数据泄露威胁。因此,有必要设计有效的技术来分析和检测这些威胁。目前,针对Android恶意应用程序的污点流分析主要分为静态和动态两种。静态分析基于在不执行代码的情况下提取的特征,而动态分析则基于在代码执行时提取的特征。通常,静态分析更有效,它详尽地检查所有数据流并精确定位有问题的数据流,但是,静态分析会因过度计算而产生误
转载
2023-11-15 20:49:31
6阅读
其实说白了就是AndroidStudio动态调试Smali,一直在用的方法,挺有效的逆向分析方法。把apk反编译成Smali然后倒入AndroidStudio中,然后通过jdwp调试相关进程。基本技能会使用AndroidStudio的debug的功能,不会的看这里能够理解简单的Smali语法看这里能够使用apktool反编译apk,并且重新打包,不会的看这里工具AndroidStudio 最好是最
转载
2023-11-15 22:21:22
38阅读
组件化中使用动态创建的作用是解耦一.反射基础:反射机制是在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法。反射是可以在一个类运行的时候获取类的信息的机制,可以获取在编译期不可能获取类的信息。对于任何一个对象,能够调用它的任意一个方法和属性。因为类的信息是保存在Class对象中的,而这个Class对象是在程序运行时被类加载(ClassLoader)动态加载的。当类加载器装载运行了类后,动
转载
2024-03-01 15:23:38
52阅读
权限组件设计背景历史版本权限组件使用的是AndPermission,长期无人维护,历史代码臃肿,不便拓展,考虑使用PermissionsDispatcher,但是PermissionsDispatcher APT插件会影响编译效率,easypermissions侵入性太强,会影响整个工程,RxPermissions 貌似是最佳选择,但是RxPermissions需要高度自定义符合自己项目特色的UI
转载
2023-07-03 23:52:46
105阅读
作者:Pika于一个普通的android应用来说,so库的占比通常都是巨高不下的,因为我们无可避免的在开发中遇到各种各样需要用到native的需求,所以so库的动态化可以减少极大的包体积,自从2020腾讯的bugly团队发布关于动态化so的相关文章后,已经过去两年了,相关文章,经过两年的考验,实际上so动态加载也是非常成熟的一项技术了,但是很遗憾,许多公司都还没有这方面的涉略又或者说不知道从哪里开
转载
2023-06-25 23:05:00
116阅读
阅读本文大概需要20分钟在Android动态界面开发框架Tangram使用完整教程我们学习了Tangram的使用。在 Tangram 体系里,页面结构可以通过配置动态更新,然而业务组件是通过 Java 代码实现的,无法动态更新。VirtualView 就是为了解决业务组件的动态更新而生的,它提供了一系列基础 UI 组件和布局组件能力,通过 XML 来搭建业务组件,并将 XML 模板编译成二进制数据
文章目录一、动态权限的引入二、Android6.0之后运行时权限策略变化2.1 权限等级2.1.1 正常权限2.1.2 危险权限2.1.3 特殊权限2.2 运行时请求危险权限2.2.1 检查权限2.2.2 请求权限2.2.3 处理权限请求响应2.3 使用第三方开源框架2.3.1 EasyPermissions2.3.2 PermissionsDispatcher2.4 运行时请求的再次封装2.4
转载
2023-08-26 14:25:42
219阅读
文章目录一、Google减少应用包体积方案演进1.1 单APK时代1.2 Multiple APK1.3 Android App Bundle1.3.1 dynamic feature1.3.2 Split APKs(Android5.0)1.3.2.1 PackageInstaller1.3.3 Split APKs加载原理1.3.3.1 ClassLoader1.3.3.2 Resource
转载
2023-10-25 21:45:12
394阅读
在上一节中介绍了如何利用AspectJ进行AOP编程,那么既然知道了AOP,那么AOP在实际的项目中会在哪里用到呢?说一下我自己的项目,我现在负责的项目中App很多,几乎每个App都需要权限申请,之前是每个App都自己做一套权限申请,UI的样式也不统一,交互设计经常吐槽,其实利用AOP完全就可以把权限申请拉齐,下沉到base,每个项目依赖base_permission。 AOP打造动态权限申请框架
转载
2023-07-02 13:17:08
86阅读
上篇文章中,我们已经将路由数据创建完毕,这篇文章我们来解决这个问题以及动态参数如何传递?首先我们要知道,我们的组件化之间已经能够完成动态跳转,那么跳转的时候可能会携带参数,那么这个注解处理器需要作用到接收方,让注解处理器帮我们处理参数获取的这部分代码,我们只要在想要获取的参数上面添加注解,就能够获取参数的值了。那么里面需要注意的难点就是 :1:通过注解处理器动态扫描所有参数注解&nbs
转载
2024-02-14 15:20:05
78阅读
之前接触小程序引擎的开发,对于应用安装包轻量化这个概念一直 耿耿于怀。相对于性能以及表现更加突出的原生安卓,为什么不能做成和小程序一样的,只在我需要的时候,才把功能包下载到本地并且呈现出来?毕竟相对来说,这种做法:安装的主apk包会小好多给开发者提供了业务功能扩展,并且不需要用户进行更新在非主apk包中的功能出现BUG时,可以及时修复用户不需要的功能,完全就不会出现在系统里面,减轻设备的负担极端情
转载
2023-08-29 07:06:00
143阅读
CI整个流程简介:
flutter项⽬源码仓库配置CI命令,配置runner与源码关联起来,flutter项⽬源码更新时,触发CI命令通过runner机
器将flutter源码⽣成framework,然后通过git命令将⽣成好的framework上传⾄framework代码仓库,主⼯程主
动pod update就可以引⼊最新的framework。
简化流程:rnnner安装->CI配置-&g
转载
2024-05-29 09:27:05
96阅读
Android 动态化技术使得开发者能够在应用运行时动态加载或替换功能模块,实现快速迭代和灵活更新。随着移动应用的多样化与复杂性增加,传统的应用更新方式已经无法满足用户需求,而动态化技术正是解决这一问题的关键。在这篇博文中,我们将系统地探讨 Android 动态化技术的多种维度,从背景定位到核心维度、特性拆解、实战对比、深度原理以及选型指南,一步步深入这个富有挑战性的领域。
### 背景定位
A
所需工具AndroidStudio(用于调试smali代码)monitor.exe(DDMS工具连接手机后可查看进程端口,与AndroidStudio一起使用实现动态调试)AndroidKiller(反编译APK使用,可使用其他工具可替代)Magisk(用于修改default.prop内属性值,开启debug权限)adb(连接手机,修改default.prop内属性值,开启debug权限)smal
转载
2023-07-06 22:21:04
169阅读
Android Studio 1.3 的平台已经接近于稳定的发布版,新的功能不断推出,包括对NDK 的完美支持。它看起来有一些重大的改变也正在等待合适的孵化时机,如:新的 Gradle 构建工具以及新设计的 DSL (gradle 脚本代码结构)在我把玩了一个小时之后,我发现它是非常有趣的,所以,我决定去写下这篇博客来向你们这些家伙介绍这个构建工具即将带来的改变,好让你们做好准备。Android
转载
2023-08-22 22:19:32
114阅读