├── PluginShareLib ├── .gitignore ├── ant.properties ├── libs │ └── android-support-v4.jar ├── res │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ ├── values │ │ ├── dimens.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-v11 │ │ └── styles.xml │ └── layout │ │ ├── share_layout.xml │ │ └── share_main.xml ├── AndroidManifest.xml ├── .classpath ├── src │ └── com │ │ └── example │ │ └── pluginsharelib │ │ ├── SharePOJO.java │ │ └── ShareLayout.java ├── project.properties ├── proguard-rules.pro ├── proguard-project.txt ├── .project ├── build.xml └── build.gradle ├── PluginMain ├── res │ ├── values │ │ ├── styles.xml │ │ ├── dimens.xml │ │ └── strings.xml │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ └── layout │ │ ├── detail_activity.xml │ │ └── main_activity.xml ├── ant.properties ├── .gitignore ├── src │ └── com │ │ └── example │ │ └── pluginmain │ │ ├── Contast.java │ │ ├── FragmentHelper.java │ │ ├── PluginDBCallbackImpl.java │ │ ├── PluginSampleFragmentActivity.java │ │ ├── PluginDebugHelper.java │ │ └── PluginDetailActivity.java ├── .classpath ├── proguard-rules.pro ├── project.properties ├── proguard-project.txt ├── .project ├── public.xml ├── build.gradle ├── build.xml └── AndroidManifest.xml ├── settings.gradle ├── PluginCore ├── ant.properties ├── .gitignore ├── libs │ └── fastjson-1.1.43.android.jar ├── src │ └── com │ │ └── plugin │ │ ├── core │ │ ├── annotation │ │ │ ├── AnnotationProcessor.java │ │ │ └── FragmentContainer.java │ │ ├── stub │ │ │ ├── ui │ │ │ │ └── PluginStubActivity.java │ │ │ └── PluginStubReceiver.java │ │ ├── manager │ │ │ ├── PluginCallback.java │ │ │ ├── PluginManager.java │ │ │ ├── PluginCallbackImpl.java │ │ │ └── PluginManagerImpl.java │ │ ├── PluginApplication.java │ │ ├── PluginPublicXmlConst.java │ │ ├── PluginResourceWrapper.java │ │ ├── PluginRemoteViewHelper.java │ │ ├── PluginClassLoader.java │ │ ├── PluginThemeHelper.java │ │ ├── proxy │ │ │ └── PluginProxyService.java │ │ ├── PluginContextTheme.java │ │ ├── PluginCreator.java │ │ ├── PluginBaseContextWrapper.java │ │ ├── PluginIntentResolver.java │ │ ├── PluginAppTrace.java │ │ └── PluginStubBinding.java │ │ ├── config │ │ └── PluginConfig.java │ │ ├── database │ │ ├── PluginDBCallback.java │ │ ├── PluginDBController.java │ │ └── PluginSQLiteHelper.java │ │ ├── util │ │ ├── PaCursorUtils.java │ │ ├── ClassLoaderUtil.java │ │ ├── RefProxy.java │ │ ├── BitmapUtil.java │ │ ├── ResourceUtil.java │ │ ├── PaLog.java │ │ ├── JsonUtil.java │ │ ├── RefInvoker.java │ │ ├── PackageVerifyer.java │ │ └── FileUtil.java │ │ └── content │ │ ├── PluginReceiverIntent.java │ │ ├── PluginActivityInfo.java │ │ ├── PluginProviderInfo.java │ │ └── PluginPatternMatcher.java ├── project.properties ├── proguard-rules.pro ├── proguard-project.txt ├── .project ├── build.gradle ├── build.xml └── AndroidManifest.xml ├── .gitignore ├── gradlew.bat └── gradlew /PluginShareLib/.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | gen/ -------------------------------------------------------------------------------- /PluginMain/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include 'PluginCore', 'PluginShareLib' 2 | include 'PluginMain' 3 | -------------------------------------------------------------------------------- /PluginCore/ant.properties: -------------------------------------------------------------------------------- 1 | #指定输出目录,避免和eclipse默认的编译输出目录冲突 2 | #out.dir=out/bin 3 | #gen.absolute.dir=out/gen -------------------------------------------------------------------------------- /PluginMain/ant.properties: -------------------------------------------------------------------------------- 1 | #指定输出目录,避免和eclipse默认的编译输出目录冲突 2 | #out.dir=out/bin 3 | #gen.absolute.dir=out/gen -------------------------------------------------------------------------------- /PluginShareLib/ant.properties: -------------------------------------------------------------------------------- 1 | #指定输出目录,避免和eclipse默认的编译输出目录冲突 2 | #out.dir=out/bin 3 | #gen.absolute.dir=out/gen -------------------------------------------------------------------------------- /PluginCore/.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | gen/ 3 | 4 | .gradle 5 | /local.properties 6 | .idea 7 | .DS_Store 8 | build 9 | *.iml -------------------------------------------------------------------------------- /PluginMain/.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | gen/ 3 | 4 | .gradle 5 | /local.properties 6 | .idea 7 | .DS_Store 8 | build 9 | *.iml -------------------------------------------------------------------------------- /PluginCore/libs/fastjson-1.1.43.android.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamicer/PluginLoader/HEAD/PluginCore/libs/fastjson-1.1.43.android.jar -------------------------------------------------------------------------------- /PluginShareLib/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamicer/PluginLoader/HEAD/PluginShareLib/libs/android-support-v4.jar -------------------------------------------------------------------------------- /PluginMain/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamicer/PluginLoader/HEAD/PluginMain/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /PluginShareLib/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamicer/PluginLoader/HEAD/PluginShareLib/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /PluginMain/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 150dp 4 | 250dp 5 | 6 | 7 | -------------------------------------------------------------------------------- /PluginShareLib/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 50dp 4 | 100dp 5 | 6 | 7 | -------------------------------------------------------------------------------- /PluginShareLib/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PluginShareLib/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #89ef01 4 | #f8e831 5 | 6 | 7 | -------------------------------------------------------------------------------- /PluginMain/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 主程序首页文字1, button黑色是宿主程序主题 5 | 主程序首页文字2 6 | 7 | 8 | -------------------------------------------------------------------------------- /PluginShareLib/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 这是宿主程序共享库资源1 5 | 这是宿主程序共享库自定义控件 6 | 7 | 8 | -------------------------------------------------------------------------------- /PluginShareLib/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /PluginCore/src/com/plugin/core/annotation/AnnotationProcessor.java: -------------------------------------------------------------------------------- 1 | package com.plugin.core.annotation; 2 | 3 | import java.lang.annotation.Annotation; 4 | 5 | public class AnnotationProcessor { 6 | 7 | public static FragmentContainer getFragmentContainer(Class clazz) { 8 | FragmentContainer fragmentContainer = (FragmentContainer)clazz.getAnnotation(FragmentContainer.class); 9 | return fragmentContainer; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /PluginMain/src/com/example/pluginmain/Contast.java: -------------------------------------------------------------------------------- 1 | package com.example.pluginmain; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | /** 7 | * Created by LIUYONGKUI on 2015-11-17. 8 | */ 9 | public class Contast { 10 | 11 | // ("com.example.pluginhelloworld.WelcomeActivity", "com.pinganfang.haofangtuo.business.LoadingActivity_"}; 12 | 13 | public final static Map PliuginMainActivityds = new HashMap<>(); 14 | 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /PluginMain/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /PluginShareLib/res/layout/share_layout.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 |