# ACDDAndroidPluginFramework
**Repository Path**: glony/acddandroid-plugin-framework
## Basic Information
- **Project Name**: ACDDAndroidPluginFramework
- **Description**: ACDD Android Plugin Framework
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-27
- **Last Updated**: 2025-11-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ACDD-非代理Android动态部署框架

[](https://android-arsenal.com/details/1/2056)
[](https://gitter.im/bunnyblue/ACDD?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Build Status [](https://travis-ci.org/bunnyblue/ACDD)
ACDDCore Android动态部署框架(你可以认为是插件,但又与插件不一样),与传统意义上的插件不一样
The MIT License (MIT) Copyright (c) 2015 Bunny Blue,achellies
代码遵循MIT License,Android动态部署框架,Activity 、Receiver支持stub模式,有bug的话可以在issue里面提交。
### ,示例以及编译工具已经移动到 https://github.com/bunnyblue/ACDDExtension
### Contributors
[achellies](https://github.com/achellies)
[BunnyBlue](https://github.com/bunnyblue)
## plugin start
从ACDDExt下载aapt,不再支持eclipse,build-tool为23
编写动态部署的组件跟开发普通App没区别,只不过最后编译的时候需要注意资源分区.
### 组件资源注意事项
```gradle
//脚本配置,编译acdd产生插件包,public为宿主的定义,详情可以参照https://android.googlesource.com/platform/frameworks/base/+/c8834722d5591d1381dc199f04a544a6b11b74bd/core/res/res/values/public.xml
//要注意的是 5.0之后androidfw资源查找逻辑修改了,如果插件需要新的theme在宿主里面定义,然后xml直接引用
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.acdd.testapp2"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
productFlavors {
acdd {
aaptOptions.additionalParameters '--ACDD-resoure-id', '0x5e', '--ACDD-shared-resources', rootProject.file("public.xml").getAbsolutePath()
}
normal {
}
}
}
```
宿主的0x7f这个一般不动。0x10到0x7e的都可以用,当然,0x0这一块的最好不要动,0x00是共享资源,跟你没啥关系基本上,0x01是Android系统资源, 0x02是WebView资源(Android 5.0新增)
##Demo Apk & Gif演示动画
点我下载Demo.apk

# License
[]()
The MIT License (MIT) Copyright (c) 2015 Bunny Blue,achellies
# [功能详情 @ Wiki](https://github.com/bunnyblue/ACDD/wiki#feature-zh)
#### 1. 安卓开发框架(Android Framework)与OSGI
OSGI(Open Service Gateway Initiative)是一个Java框架,它允许应用程序和服务动态地被部署、启动、停止、更新和卸载,而无需重启整个系统。在安卓开发中引入OSGI框架可以实现应用的动态部署和模块化管理。
#### 2. ACDDAndroidPluginFramework(Android Plugin Framework)
ACDDAndroidPluginFramework基于OSGI,是一个安卓平台上的动态部署框架。动态部署意味着应用模块能够在运行时被添加、更新或删除,而不影响其他正在运行的模块或整个系统。
#### 3. ACDDCore
ACDDCore是ACDDAndroidPluginFramework的核心组件。它包含了动态部署框架的基础功能,提供运行时插件管理和模块化的能力。
#### 4. 动态部署(Dynamic Deployment)
动态部署是应用软件工程中的一项技术,允许软件在不中断其他运行部分的情况下进行更新和扩展。这在安卓这样的移动平台特别重要,因为它可以提高系统的灵活性和可维护性。
#### 5. 插件化(Plugin Architecture)
插件化是将应用分割为多个独立的模块(插件),这些模块可以独立开发和更新。一个典型的安卓插件化框架可以让开发者仅更新应用的一个模块而无需重新部署整个应用。
#### 6. 模块化(Modularization)
模块化是将大型的系统分解为一组定义良好的模块,每个模块完成一个特定功能。它有助于提高代码复用、简化维护和增强系统的可扩展性。
#### 7. 组件化(Componentization)
组件化是基于模块化进一步拆分,将功能单元(Component)独立为可复用的组件,调试时可作为独立Application运行。
#### 8. 样例(Sample)
在本框架中,提供了若干个sample.zip文件。这些示例代码能够帮助开发者更好地理解框架的使用方式,以及如何利用ACDDCore进行插件化开发。
#### 9. 代码自调(Code Adjustment)
当开发者使用框架运行样例应用时,如果遇到程序无法运行的情况,需要根据实际情况对代码进行调整。这可能涉及到调试、修改配置或代码逻辑以解决兼容性或环境问题。
#### 10. Java Apk源码说明
Java Apk源码说明.txt文件提供了对APK中Java源码部分的详细解释。通过这个文件,开发者可以更好地理解APK结构和编写高效的Java代码。
#### 11. 下载打包源码
文件列表中的“下载更多打包源码~.url”提供了获取额外打包源码的链接。这些源码可能是框架扩展功能或插件的实现,对深度研究或定制框架功能至关重要。
### 总结
ACDDAndroidPluginFramework作为基于OSGI的安卓开发框架,具有强大的动态部署能力,为安卓应用的模块化和插件化开发提供了强大的支持。开发者可以利用框架提供的核心组件ACDDCore,结合样例项目和源码说明文档,学习和掌握插件化开发的技术细节。同时,框架的灵活性要求开发者在实际使用中对代码进行必要的调整,以适应特定的开发环境和需求。此外,框架的扩展性和更新能力意味着开发者可以下载更多的打包源码以实现更多功能和更复杂的业务逻辑。