From c737dffe010b7fd225b4e69de7b276e3f1851f3a Mon Sep 17 00:00:00 2001 From: kymjs Date: Mon, 9 Feb 2015 17:34:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BAlibrary=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PlugLoadDemo/libs/pluginmgr-0.1.2.jar | Bin 71474 -> 0 bytes PlugLoadDemo/project.properties | 1 + PlugLoadMgr/.classpath | 9 + {android-pluginmgr => PlugLoadMgr}/.project | 56 +- .../.settings/org.eclipse.jdt.core.prefs | 9 +- PlugLoadMgr/AndroidManifest.xml | 10 + PlugLoadMgr/bin/AndroidManifest.xml | 10 + PlugLoadMgr/bin/R.txt | 4 + .../widget/ViewStub$OnInflateListener.class | Bin 0 -> 280 bytes .../bin/classes/android/widget/ViewStub.class | Bin 0 -> 6227 bytes .../pluginmgr/ActivityClassGenerator.class | Bin 0 -> 23921 bytes .../androidx/pluginmgr/ActivityOverider.class | Bin 0 -> 14094 bytes .../androidx/pluginmgr/BuildConfig.class | Bin 0 -> 345 bytes .../classes/androidx/pluginmgr/FileUtil.class | Bin 0 -> 3288 bytes .../pluginmgr/FrameworkClassLoader.class | Bin 0 -> 2226 bytes .../androidx/pluginmgr/IntReader.class | Bin 0 -> 2999 bytes .../pluginmgr/LayoutInflaterWrapper.class | Bin 0 -> 6576 bytes .../androidx/pluginmgr/NamespaceStack.class | Bin 0 -> 3781 bytes .../classes/androidx/pluginmgr/PlugInfo.class | Bin 0 -> 9254 bytes .../PluginActivityLifeCycleCallback.class | Bin 0 -> 339 bytes .../pluginmgr/PluginActivityWrapper.class | Bin 0 -> 2553 bytes .../pluginmgr/PluginClassLoader$1.class | Bin 0 -> 2080 bytes .../pluginmgr/PluginClassLoader.class | Bin 0 -> 4483 bytes .../pluginmgr/PluginContextWrapper.class | Bin 0 -> 3070 bytes .../androidx/pluginmgr/PluginManager$1.class | Bin 0 -> 1870 bytes .../androidx/pluginmgr/PluginManager.class | Bin 0 -> 15758 bytes .../pluginmgr/PluginManifestUtil.class | Bin 0 -> 9535 bytes .../pluginmgr/PluginPackageManager.class | Bin 0 -> 15861 bytes .../classes/androidx/pluginmgr/R$attr.class | Bin 0 -> 340 bytes .../androidx/pluginmgr/R$drawable.class | Bin 0 -> 456 bytes .../classes/androidx/pluginmgr/R$string.class | Bin 0 -> 447 bytes .../classes/androidx/pluginmgr/R$style.class | Bin 0 -> 491 bytes .../bin/classes/androidx/pluginmgr/R.class | Bin 0 -> 487 bytes .../androidx/pluginmgr/ReflectionUtils.class | Bin 0 -> 3924 bytes .../androidx/pluginmgr/StringBlock.class | Bin 0 -> 4197 bytes .../pluginmgr/XmlManifestReader.class | Bin 0 -> 5976 bytes .../pluginmgr/XmlResourceParser.class | Bin 0 -> 14822 bytes PlugLoadMgr/bin/jarlist.cache | 3 + PlugLoadMgr/bin/plugloadmgr.jar | Bin 0 -> 72126 bytes .../gen/androidx/pluginmgr/BuildConfig.java | 6 + PlugLoadMgr/gen/androidx/pluginmgr/R.java | 47 ++ PlugLoadMgr/ic_launcher-web.png | Bin 0 -> 51394 bytes .../libs/dexmaker-1.1.jar | Bin PlugLoadMgr/proguard-project.txt | 20 + PlugLoadMgr/project.properties | 15 + .../src}/android/widget/ViewStub.java | 0 .../pluginmgr/ActivityClassGenerator.java | 0 .../androidx/pluginmgr/ActivityOverider.java | 0 .../src}/androidx/pluginmgr/FileUtil.java | 0 .../pluginmgr/FrameworkClassLoader.java | 0 .../pluginmgr/LayoutInflaterWrapper.java | 0 .../src}/androidx/pluginmgr/PlugInfo.java | 0 .../PluginActivityLifeCycleCallback.java | 0 .../pluginmgr/PluginActivityWrapper.java | 0 .../androidx/pluginmgr/PluginClassLoader.java | 0 .../pluginmgr/PluginContextWrapper.java | 0 .../androidx/pluginmgr/PluginManager.java | 0 .../pluginmgr/PluginManifestUtil.java | 0 .../pluginmgr/PluginPackageManager.java | 784 ++++++++++++++++++ .../androidx/pluginmgr/ReflectionUtils.java | 0 .../androidx/pluginmgr/XmlManifestReader.java | 0 android-pluginmgr/.classpath | 20 - android-pluginmgr/.gitignore | 2 - .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.m2e.core.prefs | 4 - android-pluginmgr/TODO | 6 - android-pluginmgr/pom.xml | 73 -- .../pluginmgr/PluginPackageManager.java | 688 --------------- android-pluginmgr/target/.gitignore | 1 - 69 files changed, 946 insertions(+), 824 deletions(-) delete mode 100644 PlugLoadDemo/libs/pluginmgr-0.1.2.jar create mode 100644 PlugLoadMgr/.classpath rename {android-pluginmgr => PlugLoadMgr}/.project (50%) rename {android-pluginmgr => PlugLoadMgr}/.settings/org.eclipse.jdt.core.prefs (71%) create mode 100644 PlugLoadMgr/AndroidManifest.xml create mode 100644 PlugLoadMgr/bin/AndroidManifest.xml create mode 100644 PlugLoadMgr/bin/R.txt create mode 100644 PlugLoadMgr/bin/classes/android/widget/ViewStub$OnInflateListener.class create mode 100644 PlugLoadMgr/bin/classes/android/widget/ViewStub.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityClassGenerator.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityOverider.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/BuildConfig.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/FileUtil.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/FrameworkClassLoader.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/IntReader.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/LayoutInflaterWrapper.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/NamespaceStack.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PlugInfo.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginActivityLifeCycleCallback.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginActivityWrapper.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader$1.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginContextWrapper.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager$1.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManifestUtil.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginPackageManager.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$string.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$style.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/ReflectionUtils.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/StringBlock.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/XmlManifestReader.class create mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/XmlResourceParser.class create mode 100644 PlugLoadMgr/bin/jarlist.cache create mode 100644 PlugLoadMgr/bin/plugloadmgr.jar create mode 100644 PlugLoadMgr/gen/androidx/pluginmgr/BuildConfig.java create mode 100644 PlugLoadMgr/gen/androidx/pluginmgr/R.java create mode 100644 PlugLoadMgr/ic_launcher-web.png rename {PlugLoadDemo => PlugLoadMgr}/libs/dexmaker-1.1.jar (100%) create mode 100644 PlugLoadMgr/proguard-project.txt create mode 100644 PlugLoadMgr/project.properties rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/android/widget/ViewStub.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/ActivityClassGenerator.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/ActivityOverider.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/FileUtil.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/FrameworkClassLoader.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/LayoutInflaterWrapper.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PlugInfo.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginActivityLifeCycleCallback.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginActivityWrapper.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginClassLoader.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginContextWrapper.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginManager.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/PluginManifestUtil.java (100%) create mode 100644 PlugLoadMgr/src/androidx/pluginmgr/PluginPackageManager.java rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/ReflectionUtils.java (100%) rename {android-pluginmgr/src/main/java => PlugLoadMgr/src}/androidx/pluginmgr/XmlManifestReader.java (100%) delete mode 100644 android-pluginmgr/.classpath delete mode 100644 android-pluginmgr/.gitignore delete mode 100644 android-pluginmgr/.settings/org.eclipse.core.resources.prefs delete mode 100644 android-pluginmgr/.settings/org.eclipse.m2e.core.prefs delete mode 100644 android-pluginmgr/TODO delete mode 100644 android-pluginmgr/pom.xml delete mode 100644 android-pluginmgr/src/main/java/androidx/pluginmgr/PluginPackageManager.java delete mode 100644 android-pluginmgr/target/.gitignore diff --git a/PlugLoadDemo/libs/pluginmgr-0.1.2.jar b/PlugLoadDemo/libs/pluginmgr-0.1.2.jar deleted file mode 100644 index 469eb51193e39c04e1f5eba2e10225000ed9f0f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71474 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 diff --git a/PlugLoadDemo/project.properties b/PlugLoadDemo/project.properties index 4ab1256..1de5c72 100644 --- a/PlugLoadDemo/project.properties +++ b/PlugLoadDemo/project.properties @@ -12,3 +12,4 @@ # Project target. target=android-19 +android.library.reference.1=../PlugLoadMgr diff --git a/PlugLoadMgr/.classpath b/PlugLoadMgr/.classpath new file mode 100644 index 0000000..26bdfa6 --- /dev/null +++ b/PlugLoadMgr/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/android-pluginmgr/.project b/PlugLoadMgr/.project similarity index 50% rename from android-pluginmgr/.project rename to PlugLoadMgr/.project index 15c5b51..a954f29 100644 --- a/android-pluginmgr/.project +++ b/PlugLoadMgr/.project @@ -1,23 +1,33 @@ - - - android-pluginmgr - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - + + + PlugLoadMgr + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/android-pluginmgr/.settings/org.eclipse.jdt.core.prefs b/PlugLoadMgr/.settings/org.eclipse.jdt.core.prefs similarity index 71% rename from android-pluginmgr/.settings/org.eclipse.jdt.core.prefs rename to PlugLoadMgr/.settings/org.eclipse.jdt.core.prefs index 14f521d..b080d2d 100644 --- a/android-pluginmgr/.settings/org.eclipse.jdt.core.prefs +++ b/PlugLoadMgr/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,4 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.6 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/PlugLoadMgr/AndroidManifest.xml b/PlugLoadMgr/AndroidManifest.xml new file mode 100644 index 0000000..9a4342d --- /dev/null +++ b/PlugLoadMgr/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/PlugLoadMgr/bin/AndroidManifest.xml b/PlugLoadMgr/bin/AndroidManifest.xml new file mode 100644 index 0000000..9a4342d --- /dev/null +++ b/PlugLoadMgr/bin/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/PlugLoadMgr/bin/R.txt b/PlugLoadMgr/bin/R.txt new file mode 100644 index 0000000..637d9e8 --- /dev/null +++ b/PlugLoadMgr/bin/R.txt @@ -0,0 +1,4 @@ +int drawable ic_launcher 0x7f020000 +int string app_name 0x7f030000 +int style AppBaseTheme 0x7f040000 +int style AppTheme 0x7f040001 diff --git a/PlugLoadMgr/bin/classes/android/widget/ViewStub$OnInflateListener.class b/PlugLoadMgr/bin/classes/android/widget/ViewStub$OnInflateListener.class new file mode 100644 index 0000000000000000000000000000000000000000..660504490897da63ad0a11c48d6a657cdb1c5211 GIT binary patch literal 280 zcmZ{fy$ZrW5QJy_NsK?Bl`mjn8V_tO1wjxj0_iWw8ZLwjB$wpfEPMbTN<4+wNSfV+ z8RnaPzU~hIdn{ZG2)@)wS*S#`DoNRhP;ncWI@(JML_@XMqnoAcW!ZMSM6uH!? zxJDVrhTs*QlOVR2p1i|PXe{B2Irt%A8WeRI^GW4QSakH=2Sb>jwFMt@Syf!Qm=V@J i@r2c1VTV8%+Ft>()yHt`HGun_6L@w{t;2S}-0|M0s!bmN literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/android/widget/ViewStub.class b/PlugLoadMgr/bin/classes/android/widget/ViewStub.class new file mode 100644 index 0000000000000000000000000000000000000000..cd11a9fd734aa83f348ae07bccdf1bbd1d875e8c GIT binary patch literal 6227 zcmbVQd3;<&9sf>tvv0F~z0#&7rY#FiA>E`2v``>PTWh%%(u1a?wp8I|_a%9-d7JLO zO`D1bXgNd>FSN=f1q%uogl>Q$6pyN)f)|Ge9-yKk-WPKCoq2EHZg!LM`S?dN^JaeY zo!|MLnSJc_2OkEo6t8Hg5}0e)$xPZxw(YQz{if5_W0^a;om{Vmpuo(+q6%3$2?OBs%tj3)(V_+JukquD1gzw1I{*l0@`c7I#O>}%U> z8W(ZG%$Rn<>=3Bww)$4cH$F*26?_6CE_ zfRz=f_jfPTnmTGqp`A{tRJo3H)#L`mr3KScWzjxq@&&#!Imb%1t#+J@)tht7Zc{o# zTHGkTut?zK{|iIuQ*98ImNy(`voID5L=)-3Rxb@&Erujx8>!Zfjag?TWlB#*(2OM- zTIlm)YOYBc*{qIMw9$cm>C8G~kRe#qRFaY1G|TSqSX?rsR&|7Nyg;~6KoWkLjuUVq z2U%ICTV{%-vE)slSQ{xb;j}67jtEY|DH={@ofdT*C!(Vr40eD!2pm%izP|TD0*%wt z8`7{spz6GM7^?(k6%;<-@+(+wyIRNFu!gBl2{37MVm5)Olgj*X((F@aF`rZsP%8>qcGBF*A=mR#eu|uxE>{AfVfN(kG(YoIx{}>1 zGMHRWf7g|a`_W;J34>MjW=>)R#`6{Z=W*8T5?rN1XG{|JR2A#B#*h-zkRxFg{96$z z>7N}sc1r(DrGI*?tkr9!EN4W{?9%ZrTr5pBoy}G%wJzaMPBF8X zo)V{Ylzdz~%4Twjdwvu`Nyl-)grYKn5N)^QE45|~Y$z3Jqs)}U!;S#mrHd2ToZ-bDA1 znc(gNrqw@C5O&9cN#(|p)2=^b3=LR`Y}*>c9yYS-vxxuN2sAldGE8bfCkr94)X$LtObH_=zcxp*pN_8Tdtm}C06 z9L8q_VsuC`d!jsINf^DY(cS;}4@ zrEFQudI-jhj|}@+%hZ%RkP-dDQqfhCGNtd*aW}rm=rRvC7`!c!i5n)ubtgMC+`|$q z)Q^vKMkbvbl6d#(xDWfO1M$|lHDlO8dtm9Kttv)ykNI>0wjO#BEo#$=0cme@n+>c${aJPZErRG04;A*oi`Oa%>p5?ELWm_J#Wg6`2!@yHQqoit#T@mBOd-6OujJBcLI zt)7UdTk;({ZFjm}+?raWQ6+lRLr+jfYN;?i^m&zA%po|?>ur(X7D>#8skVu_0RA?0-ZliqQ8c(pZFsb| z;aOBxZWxX=w*7!txZ=OmO*-^I(M_T~7+78% zSRNAXT3~s&w&{Mv+H2}-YLClfsmNpbL3FkU`MuKpe(UmTew>d7RbUQXiZj$YVo$O{~7AuDU9Zp8eP+`ymdqUnk|>Nja@VE-dBpFw~qEQ6?+; zaUq{CLCDD3$`L8g?Ssq`o3Tq{7KRwz?UZ)tlq{o}!*LkK3hcmHytHn`2yu2H#cS$z zyoa;z<;;6QWxRU4U2i0!7n2mI!@Ad<}+Yfkdm$N1V z8=yXSqmR1=snr*_V~Cp0!tEGfFGLM*V<=ZJp!K+gR)u)~isB4hM7?VGSB*j1Q$wv* z(WW8xwsU8l0d=J^9LaJdimErbyhel2aE=CtO{Y-*5N6+>F1IYwjvhB;+d+!uzPG-1w3S6{#y%=_ zxpZPh>dF;)f{Hvji6XL)r6TWV=9C-NydS&Ev7RQ@Gm~Il&b*OWS1{`;y}Ns~%)8G` zU{sLFdX=|0&X7t*(P9CX+lR_Ed7hfTpdehL(tP)7jK3Q|4cD?KiRvTxs0VwZQUef0 zKv($160`WjoJXz#A7feZW{OX|ImAncg%I-D>1pwRXIv-q?z%&0luaI=I*7p9mP44* z(vZgu`w%^V8@JTnJce5yi8YMjhK4-|H)uDLWb?Rfvos)}(sik-?N?cmuQ4%SXNA6j z24?L7!7GrcLL=KIQH>=cgyk%)4iPEwT&HhrC+<+5t0ltcS@~6}PNyRHDi&x6yn>pk zK^nkkife{=oPN=$#=TVN&aUP|*xURlM)%-)+Ecd&S2Z8R=vwx7(})Cb4#gZ;RUNKYNYblJq}gAd@D0P2II2k_jM+Fy*}SC1%2Y)~S^4+)17j%pwH4vl(5&Gl z4WrBr4P&oj9>e$=Ez|I_cH|q9zZCnv1ah*#pYazruqD(+7I>;yDvH`f7k#z1B-cx+ q?XSE<$Q#n%s6iF}j(@O~1@=$2|KeXQM_=aY^l$F?EXV&7s`(!`DfDgt literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityClassGenerator.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityClassGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..1d051ae13bb096bc8922d97d6b78f17b1f4b9652 GIT binary patch literal 23921 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 H!zuQ^R_A)- literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityOverider.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityOverider.class new file mode 100644 index 0000000000000000000000000000000000000000..48baf0e3e76ac0e7d0afe8792f1d1a3d848770ae GIT binary patch literal 14094 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 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/FrameworkClassLoader.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/FrameworkClassLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..c68080240713086d6362ed3e76469a2761fb3d8e GIT binary patch literal 2226 zcma)7YgZFj6y29R2Eqh21!;U>L_m^2;-gw6NGnt@ZFsbyC|FxB$ruO1OgfpM{FMF+ zx>f~OyH-E?q5r5K+SPq$0;CXH7a@1%+;jIiXYX@Q{`mXX-vQi$rJ+OMy0prUZI<6; zYt=@@w6-cvcGi(w#%tTzoTuh;Nmf^+W2*P2G3dTB>jKHb2bRRt!Zqm_mMhSINti51-cLGm`Fr0grrhB#Rh8=E4iXP#&nD$L&apRW>{>s@pi5! z=xzqhDTo_7ZsL|er)&EeQQXm1!kVH*@Coi}xFc}3DM_~Bn$>K5@1A$wvnlJFYv}DC_bUXkrM|Z_=^H$xJR*CcvF~$Eo$nqxexsHdJ z7Krk=4?Df1?&QrjiJl6Xw_e)R@e8(q--U?>o`0}3U{p1K08;s0q9!FZkejpAG3s`8o6We!miEO`a(lDbv;;1n);6BT z0y@XCmyVAo7;mtpf&H!Hqk(N4^)j57wdUB36zzsnGGG=7ezNay`$_5-^u5PZwJf~D{qa3~ zHW6&P&d@a;+{2@$Z#?)OnRG0^hsQsmmq+?1LTY~@9@@k5uJ=gXwOyKN`7V{dw2v3N zOl1x)u*t+EHoP_9l{-s@fE1ZaGx;$LBEzDy7~z`64NP-B&fzwea0e^6i)Wm6&$&w6 zCrS=mn1sV2qu75;GFapxO*>d;*@~telu%|4gTygt3lMt_FHs>eE9k~6+Csz%!DMzJ ZB7?dG{({ty*RaU{fj>R0Dt9`t^$)KzG%5f9 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/IntReader.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/IntReader.class new file mode 100644 index 0000000000000000000000000000000000000000..3d0ab879c187870fc40f9d6ec05aabf93fa45ae6 GIT binary patch literal 2999 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 LFv>!HCB& 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 LooeB*Pp$YLUx}oF literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginActivityLifeCycleCallback.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginActivityLifeCycleCallback.class new file mode 100644 index 0000000000000000000000000000000000000000..008782492baf37aa53e7c3e37071d5c29bce0cad GIT binary patch literal 339 zcmaiwO-{ow5QU#hiQDpf2o|79wbX4_D2P=gszzczbxq{fwIkQ5$kkYI01kz4QX`gZ z{5{R+y_xaX_s1uIIc_)x40Ey@@AT$f)TXJl-B(^Ld-W)TKI+gG`c37nG%6=!)+Bcv zLx$Te9Z49nm3Ucil?)6cXLGM8D2C~M@z*bd*S1;|X_BD27Qf+(hu7Y?Qio^og_oDxZUJzwiUmX zo+Ie-4?ln(%HuP;n{2wB>L1O{%e}w*%$+;8fB*C6UjP>IGLMWvNqSAc<1}B{U3ahL zc)Km%-Uvs_jlkJ=f}eMM+3hMnkDS1T*xKHA)KB(G#|zY}V7sk$Rcs}Y4P;ATs`^sy zOWT!R%iaon$7?MKjM1SNNH3^KcTW{CD)5#umcU4)MqsvjgupfLMTg8H#SLPg?Hk(- zEzJx15@|Sc$MKxtuE1vLNUQ(dNM|V&QLYK(Rys{pL>5yP#&MEqD3xnP@PHPkaav$f z27zp}AIP4H(Ze97?vhFIK=}tqsHR(Hg z9xvvCw$l@+^beHQ?Rcr%WrA{bY7;25RCJ>P^QCehFi5DcdiJL3b@u#*>dl2$zf`~+ zFQV^PDi?7Dr99>ZCi?ZV7dWn6?X)bEQ4tVLO+Q>ChgZsL0>_D7bzIeZ==fw(Rajh3 z$JVP$MJ(XGJZyo}{cx%4w{R8L1g6Q^kc}T@OZAViA%nKSsXo#js@DQ;2%Isy=rb3y)D17*7(gE_c~Iws@+8Ymvj37M|+lTHNekGvC5R zgNOsgOetSSVFq3i@LLNt>`4?ah%}q1ZOVybNrsF{Eo@W)i)eme~mMhYp*f$Yv^^Jztd!b zEg^?_jG{#UGESm`S*}(hf4q%%I3tN##z@yA9WfJ*w1zBKFXG)e@=fk&tKw8)>e3&$ zyd!?$ECU^{7_^o6p~%IDi-Z&9yGAWLL#!m<>bF-W+U1F literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader$1.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c8530ef553ae01f3dfa483948c97411c6cd31ef8 GIT binary patch literal 2080 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 SZ-(%9{DV)~cu(=kpZ@`yI-!IB literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginContextWrapper.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginContextWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b3d5b57bd9d2ff3aaf4d4ff743b83c4d46cc96e3 GIT binary patch literal 3070 zcmaKud3O_47{;I5EopiSrLr%|QXmP1QDilMLIJH5iY>O3O{d9_PDv+mGO5LV-xYVy z@l)tIwB^V-egOSW9-nt+vNRd^qnSH*`Q7JTr~mx-*WUmR;yb3R@oyOHFh`VS`2|x?o@A;j@^PL> zU?ZLqiQAb7trA-=&ID?AYH0K(Fn~QV>{i(Fm|$z{MN*-MGR4K0O>c$)rM{NXcT-JT zV;|xQ-Q{A%%}R{qmi-zB1ky>!a4vzTaWIBw6m~`2dphgc^R{<)bl!69oaJgfi$e;1 zJQ`%t8M7S3erK{(Lny174+$K>u^5gjXkTtPuW?-DtQOZ#my3mp=i4O)WHe5Q0kNFv znUo&`b7@1ft!FBBf!Y#y0cT=3O?k~bG=^}Nn0YCJ(c2Qz2DPKpvsTv2L^v^llQ=IS zeNkau8brTw=DfvgNR1 zJEj>>g-tC9UoF>q@|FFX@2e(XW0Y@d+`?;gg0*0mJxXX#rml$sITP# zNhEA%MYi+n-+?yy-f*-TF~m9B&2bwN{9|YL$1Gbud$`tzHT>=8+rK;`=WnL>E#ryw z;3C$iA7bNFdKsIS@#G?Qr0-+L;1YH%A{7n?AHZ0`;YB>htw*LF;^Y)JgtHIu{4&n< zzqEvxmvCtruPkEhPyhNW{5|4JNm6Qx($d((kHY{4k;H!f4#ME`AfJc%c{s+mYiZV!ZF0+W2BWL)LC@<(EN8^_mhJv3~LPg&bQ(PK-v@jH5g(d(1){DVvF5J{_i z>>ES7r&>#I8Jn`V|x)@&r}JKT$4eP3t&*vu-DRf=T&;^*40 F{{scw(DeWS literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager$1.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b5fd0b0aaeea5eeea23dedc44dafe31ff6b56115 GIT binary patch literal 1870 zcmbtUU31$+6g_L3$WfHkanq)ue1zgq+p+7U6k2cyq#-Q^J1vb#p*(G5;ixE*N0w9i zcNm7i0K;^KgbWW1&-@Gi2yj-GV>RI60nJFedv)&D*?aHrfBy0-fU9_*At7){x-H+c zTVGTg$UKz$vf@a$UAeRK&@uxJV*=Ts^j^<(<&I+s zj0L-PH@8IF_5U(n70~yklk58ycz%>d&Hc^&EDRQKqAEiaUYasIX1~&n+|4q~CLOyoi@H%nMu` z!L~}pz$LsaFx9q#bwyv@lP${^$ma{AUB!@99SgXu;T2{$q&x;NkVipa+@ax6EU=LO z7ye?R5Jtm`C~GK@qEm(qTtP)(!nGdN+-@LUlQ%xYfQPt#DONQs3(Q98S7fJCS?hEh z+mwOrk)T)cnucov^CJj4A=SX^xGs>ErfGG<68`jmm(Yl)s)cPGOL)V;o2p3Cp1bZ_ zGO*HE5ztgWuoHEx;vEfdv;78UdV%d!>R#Kx8g8=ic%fT?G(T_p(zN<5AW(=i-`w@R zN2`x3ENMVfU2$8m}0C_ShpEo z(cpTbVwpY-CTt=G6POzm>gfw6@?1>&BoxZeKiy-GJA*!(i7A8;tQ1#?pA5Nd$WGLb z`j*%8P3xAe=34ftxp+k-&!XLMO~>nU@-(bq*J~NLkB=FU8bN)0tP};VkF2Nuz!_XK zGq0?ffxT}BkE;*V05NK=Yx!ZURu}UeHA%kDAeqUiDFkG)Y6gWXClE(`g6|}zh&sdF zO`cO+XNrr5$P`P5$QH|oJpPRHPeSw@zj~-e4e=$O<=LP%b#M{Sapi!G{yy?_ literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager.class new file mode 100644 index 0000000000000000000000000000000000000000..c0b19fb616b1e8999b3954ab2b95e2aaf96330e2 GIT binary patch literal 15758 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 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManifestUtil.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManifestUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..1b5561be970928c1bd1c045026dd700cf53202ca GIT binary patch literal 9535 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 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class new file mode 100644 index 0000000000000000000000000000000000000000..7424329b144623804a3b0ff2fcdf89ff66b3c560 GIT binary patch literal 340 zcmZ{fPfNo<5XIlL`J*w~T6-y8J*Wp4y((S`g+frM()%V^;+AwHn~nIjJP98B0DdTO zHh5GP-rG0B48QsM{`drNg=vfdVJ1y!8(qGN=en!3*;ZDpPNZ`-MnD*Ez-i=tdjuZVAKFvo#@@H>FB2#BPcZ5n+^RqwczGuI!`CYekr3O(E;GwA$z2V&I;1 zOE}K{1-K?84^3wawa|V|w7T##gmh_)vh!NDt!iUT2-CloFq^*vmta;t8SLa4Sz}J3 n&p>$oj-59y43Mz;Hn7JJNc(@tzTfu`dL3cRp7i5~IKu1)$Ye;% literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class new file mode 100644 index 0000000000000000000000000000000000000000..817d8b01557c9a18bbbb75f7a363d7430a3d5c8d GIT binary patch literal 456 zcmaJ-O-lnY6r8u)?$+)0!&*Noh!+v{;G$QHmx53z3RQZQbT_mqX;!jb_2zF94}u4O zfImu1)_M^!ki7SX%w#4XpKtE~POS8tx^UJ+QIlK1zh< zjNP+HGBt^=#xou-2vrf^N|vj5$~A%dgi1G-LW#vW!96$}5lX!@;qH?Itbh=PD8nN( z214=6d_Ly-#y&u34bqs&5!1rXOVH~US^-?FhG?K-^cGW*5q1av8a^Wg*J-X}ej%*7 zH$1lPje)*WT=yi)GM@R^BDDV!GC_W_>f~2G%7Wn_`X}opgMXJTbS$o=@peaN zCOADmR7&VU%8No29(EbJf7uYR{4~xfGexJfVS-avK^-1#qX0)#&2l^b8`fT_t6<&C sR&Qg&Du$=-_`31rBZG80tJ4C$Stq1&eSwk9Kt)bHzg))-a6@ziy95CeD@mLryd7uD> z4G$(P1(||n4>l}@QddUeZaE){q|b*T$@<-R#KQqkq{8c_)zZ=~3~YO-pg{83RHh7# z?*B$E8Qh0>nT*7(RMJ-OOt~T_ohTAXJLG99QX371>R&1hralPHX=8(qmm@3Wf~taA zUw0fh+Mr7)pgHx5esKlQ-&~>eN-&2liY{fKNdl+vbr&>FUMT*M72P~}L-m(tY0ZkJ Yc)B*RgIz7Kr(+Fu$}ase?Bf8nZ?aZe-T(jq literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class new file mode 100644 index 0000000000000000000000000000000000000000..54e20bb2518ae3fa9ad76c68a16936d15bb396b5 GIT binary patch literal 487 zcmZ{g%}T>S6ot>VNv76nYpvC^b|Ws-g+aH9n}Q$|g(}@on;}j~Co)O>c`R3g3m?FT z5^qx7MF#G7?$68|?$`InCxA2b1y%@cX+oRm@FjSR7m+se$Oa<;htQnKCmF=jM8WN3 zrluLeyU<2wmxRjU(U{;2l2Fx9!D<~YJVIlrjk;OPC(7Q-NvsI1VKSBRSX!OuzeOi| z&?%uaEc^SMP`gVOcB-y){(?6;$&C=|*TyJ2h-I3pRG>xh%kCe@EVJw_hrl+WUpf_9 z`Mk7P{gVQ_gkI@%nptfkHnS80Jwo@N$=BSqn`TU$f_KH+29t~MI10{!A_v^#cU0fF su!0)LybV@s9P5R4nd?P=qlgVOnfq|C$^9+(Xfr#^9j4Ex%iM$i1F|u2$^ZZW literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/ReflectionUtils.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/ReflectionUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..19b5b27bac221203941b15162b00d3baf9572982 GIT binary patch literal 3924 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 T>oLgU?Qt2k8aU4w#60^yf^lT# literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/XmlManifestReader.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/XmlManifestReader.class new file mode 100644 index 0000000000000000000000000000000000000000..12e763abcdb1cd0ba67820ecaaac4bbc49ddd971 GIT binary patch literal 5976 zcma)A30Pd!75*IFPVGax#yns zKj+??7xq8#G=O>P2n{I;M+L$iu}H9^uQD3y?Fxo_x?+`UdqT~DaIn*iCsvz*4l|~~ zso>cZ*c_+~1;SmGD>iO2+Y<`uOP4j&ozm30er8WZi)QAk-G!KjW|B*Zx$Aqxo|M{*2?b(C=I>CthFvc=9eVBjzv%6F3JT4=fAh6D2r%!7yS zB)Wrfg`=CkNb;D3>@G7g8f~VkAr|SWTX`}Clui!k?8zhz)e44{++d`#As8~t^WIJr3~x2AFS8aHaO)W9+j0Xhv| z7EZ*@R`5-w#6OSf#{hl z1Bq^CxRVwVnv-p`OedCN1c30%x56}=aWsrnXxd@Roh-o)5mCu~+4izk)nkSTV#ef6 zFi^_ba<4fMwZN%in=1pcxNPmle2HtwKo7$7n*eDHM|&Cem>K9{aZQnJ+u>wdCFbKBh?H(b z4V;A-jfq4}%FG?djOz9hb|Bwi91 z`?nd`j`J1L7>t!MvoqMIFuin27%N<8;36zw<&n81&|}7pyjaH$)>KiENVrWR zv{M>e<76u=z}#Wr8^Vz>QO7BU-Pmw2*t ze$&9WM51J6Y}a^J?lbnM|L!C5J8*6MhQVIKwRGX}mp z3a(bOFCp>zo`LU+XlFP{SSf<{8u)>5>WPSrGj=p4%+G$4H_6gbWYE5-)g}&oG#=zO za~`KicQD++e(6t`Q5upsJIcSp|ujDxx=%Tz2@J|i@AU?;>gT`>e>@s8G+J_9-frXY_qyxG5 zmw}J*Z<^1@_XJqNCrr^Rrs|TDy>njqF7Kxg9YkA8}6#%pA zJ3E*kUFEQFl2=2fJ|)N=n-++5_4W|tab3+MB;1Te*xVvlP=1}pucR$Zp5Hog?Tf{X zwFf^2=19O$#B4iwfp#Jfsc`X2<5voFYfQOu!{Cbf)<s{66^k%JUOZ84))#mbMuX+?SJo;0}Be>MI-iqg>?WwOI3JGf|Z2m^Nr@5CK*9;OK?ke9$bnhWfsi9baS$9%kuBlz!2 z_!$~GHsKZC-d;frui_kz+c+L;?G_2VmM0xMjw4?HNG;oq*F63eh^Qq6mCLK_9uwCq7`TZMBsPHZao>O-inc9!QkhjCK#0Oq$; z3}JcsUMwmf!ioV@RlD+BLs&fkUv(PE zsHY{3XvRu@ufs-|9357`)-g;#8T~3JX9aUShm=ap;_A`#v5a!&V7?`-ivHEm!+IRY zi~W2`tfI{0v6{3~xpEq5>qy&3S{G>{EVQC@1|!2r;1nWE!W_aH@)PISgterlP-`CA zxZgp&8cxRuBC$G@pcP-Hn z7$GWL<7-qA5C*?%gt{ke!g3*6d2F=v=olg12`P2&9<;Z4I(EZsR!n1e+iq-XsVHMo z&KyF-T6A-<+Ubo~rw*v5Y}b9X3+g2K+|+Ho`Pc-TLx6V!{
h9JW*OqWM+_16 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 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/bin/jarlist.cache b/PlugLoadMgr/bin/jarlist.cache new file mode 100644 index 0000000..0565465 --- /dev/null +++ b/PlugLoadMgr/bin/jarlist.cache @@ -0,0 +1,3 @@ +# cache for current jar dependency. DO NOT EDIT. +# format is +# Encoding is UTF-8 diff --git a/PlugLoadMgr/bin/plugloadmgr.jar b/PlugLoadMgr/bin/plugloadmgr.jar new file mode 100644 index 0000000000000000000000000000000000000000..77b948ae1a0912e2b8ec345cfc5d60c14ea5717a GIT binary patch literal 72126 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¨7hvQQIw~^k5EdA*FsJTf`Tn)i@sU* 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 literal 0 HcmV?d00001 diff --git a/PlugLoadMgr/gen/androidx/pluginmgr/BuildConfig.java b/PlugLoadMgr/gen/androidx/pluginmgr/BuildConfig.java new file mode 100644 index 0000000..ea402c8 --- /dev/null +++ b/PlugLoadMgr/gen/androidx/pluginmgr/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package androidx.pluginmgr; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/PlugLoadMgr/gen/androidx/pluginmgr/R.java b/PlugLoadMgr/gen/androidx/pluginmgr/R.java new file mode 100644 index 0000000..15f7892 --- /dev/null +++ b/PlugLoadMgr/gen/androidx/pluginmgr/R.java @@ -0,0 +1,47 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package androidx.pluginmgr; + +public final class R { + public static final class attr { + } + public static final class drawable { + public static int ic_launcher=0x7f020000; + } + public static final class string { + public static int app_name=0x7f030000; + } + public static final class style { + /** + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + + + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + + + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + + API 11 theme customizations can go here. + + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + + API 14 theme customizations can go here. + */ + public static int AppBaseTheme=0x7f040000; + /** Application theme. + All customizations that are NOT specific to a particular API-level can go here. + */ + public static int AppTheme=0x7f040001; + } +} diff --git a/PlugLoadMgr/ic_launcher-web.png b/PlugLoadMgr/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..a18cbb48c431dfcc163fce2b6e27e981f8c09f6a GIT binary patch literal 51394 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 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.pluginmgr; + +import java.util.List; + +import android.content.ComponentName; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.FeatureInfo; +import android.content.pm.InstrumentationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageInstaller; +import android.content.pm.PackageManager; +import android.content.pm.PermissionGroupInfo; +import android.content.pm.PermissionInfo; +import android.content.pm.ProviderInfo; +import android.content.pm.ResolveInfo; +import android.content.pm.ServiceInfo; +import android.content.res.Resources; +import android.content.res.XmlResourceParser; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.os.UserHandle; + +/** + * Customer PackageManager + *

+ * + * TODO unfinished, prepare use in + * {@link PluginContextWrapper#getPackageManager} + * + * @author HouKangxi + * + */ +public class PluginPackageManager extends PackageManager { + private final PackageManager orig; + + public PluginPackageManager(PackageManager wrapper) { + this.orig = wrapper; + } + + @Override + public PackageInfo getPackageInfo(String packageName, int flags) + throws NameNotFoundException { + PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( + packageName); + if (plugin != null) { + return plugin.getPackageInfo(); + } + return orig.getPackageInfo(packageName, flags); + } + + @Override + public String[] currentToCanonicalPackageNames(String[] names) { + return orig.currentToCanonicalPackageNames(names); + } + + @Override + public String[] canonicalToCurrentPackageNames(String[] names) { + return orig.canonicalToCurrentPackageNames(names); + } + + @Override + public Intent getLaunchIntentForPackage(String packageName) { + // PlugInfo plugin = + // PluginManager.getInstance().getPluginByPackageName(packageName); + // if (plugin != null) { + // //TODO + // } + return orig.getLaunchIntentForPackage(packageName); + } + + @Override + public int[] getPackageGids(String packageName) + throws NameNotFoundException { + PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( + packageName); + if (plugin != null) { + return plugin.getPackageInfo().gids; + } + return orig.getPackageGids(packageName); + } + + @Override + public PermissionInfo getPermissionInfo(String name, int flags) + throws NameNotFoundException { + // TODO + return orig.getPermissionInfo(name, flags); + } + + @Override + public List queryPermissionsByGroup(String group, int flags) + throws NameNotFoundException { + // TODO + return orig.queryPermissionsByGroup(group, flags); + } + + @Override + public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) + throws NameNotFoundException { + // TODO + return orig.getPermissionGroupInfo(name, flags); + } + + @Override + public List getAllPermissionGroups(int flags) { + // TODO + return orig.getAllPermissionGroups(flags); + } + + @Override + public ApplicationInfo getApplicationInfo(String packageName, int flags) + throws NameNotFoundException { + PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( + packageName); + if (plugin != null) { + return plugin.getPackageInfo().applicationInfo; + } + return orig.getApplicationInfo(packageName, flags); + } + + @Override + public ActivityInfo getActivityInfo(ComponentName component, int flags) + throws NameNotFoundException { + String packageName = component.getPackageName(); + if (packageName != null) { + PlugInfo plugin = PluginManager.getInstance() + .getPluginByPackageName(packageName); + if (plugin != null) { + String actClassName = component.getClassName(); + if (actClassName != null) { + return plugin.findActivityByClassName(actClassName); + } + } + } + return orig.getActivityInfo(component, flags); + } + + @Override + public ActivityInfo getReceiverInfo(ComponentName component, int flags) + throws NameNotFoundException { + String packageName = component.getPackageName(); + if (packageName != null) { + PlugInfo plugin = PluginManager.getInstance() + .getPluginByPackageName(packageName); + if (plugin != null) { + String className = component.getClassName(); + if (className != null) { + return plugin.findReceiverByClassName(className); + } + } + } + return orig.getReceiverInfo(component, flags); + } + + @Override + public ServiceInfo getServiceInfo(ComponentName component, int flags) + throws NameNotFoundException { + String packageName = component.getPackageName(); + if (packageName != null) { + PlugInfo plugin = PluginManager.getInstance() + .getPluginByPackageName(packageName); + if (plugin != null) { + String className = component.getClassName(); + if (className != null) { + return plugin.findServiceByClassName(className); + } + } + } + return orig.getServiceInfo(component, flags); + } + + @Override + public ProviderInfo getProviderInfo(ComponentName component, int flags) + throws NameNotFoundException { + // TODO getProviderInfo + return orig.getProviderInfo(component, flags); + } + + @Override + public List getInstalledPackages(int flags) { + return orig.getInstalledPackages(flags); + } + + @Override + public int checkPermission(String permName, String pkgName) { + // TODO checkPermission + return orig.checkPermission(permName, pkgName); + } + + @Override + public boolean addPermission(PermissionInfo info) { + // TODO addPermission + return orig.addPermission(info); + } + + @Override + public boolean addPermissionAsync(PermissionInfo info) { + // TODO addPermissionAsync + return orig.addPermission(info); + } + + @Override + public void removePermission(String name) { + // TODO removePermission + orig.removePermission(name); + } + + @Override + public int checkSignatures(String pkg1, String pkg2) { + // TODO checkSignatures + return orig.checkSignatures(pkg1, pkg2); + } + + @Override + public int checkSignatures(int uid1, int uid2) { + // TODO checkSignatures + return orig.checkSignatures(uid1, uid2); + } + + @Override + public String[] getPackagesForUid(int uid) { + // TODO getPackagesForUid + return orig.getPackagesForUid(uid); + } + + @Override + public String getNameForUid(int uid) { + // TODO getNameForUid + return orig.getNameForUid(uid); + } + + @Override + public List getInstalledApplications(int flags) { + return orig.getInstalledApplications(flags); + } + + @Override + public String[] getSystemSharedLibraryNames() { + // TODO getSystemSharedLibraryNames + return orig.getSystemSharedLibraryNames(); + } + + @Override + public FeatureInfo[] getSystemAvailableFeatures() { + // TODO getSystemAvailableFeatures + return orig.getSystemAvailableFeatures(); + } + + @Override + public boolean hasSystemFeature(String name) { + // TODO hasSystemFeature + return orig.hasSystemFeature(name); + } + + @Override + public ResolveInfo resolveActivity(Intent intent, int flags) { + // TODO resolveActivity + // ComponentName compname = intent.getComponent(); + // if(compname!=null){ + // String packageName = compname.getPackageName(); + // if(packageName!=null){ + // PlugInfo plug = + // PluginManager.getInstance().getPluginByPackageName(packageName); + // if (plug != null) { + // String className = compname.getClassName(); + // if(className!=null){ + // return plug.resolveActivity() + // } + // } + // } + // } + return orig.resolveActivity(intent, flags); + } + + @Override + public List queryIntentActivities(Intent intent, int flags) { + // TODO Auto-generated method stub + return orig.queryIntentActivities(intent, flags); + } + + @Override + public List queryIntentActivityOptions(ComponentName caller, + Intent[] specifics, Intent intent, int flags) { + // TODO Auto-generated method stub + return orig + .queryIntentActivityOptions(caller, specifics, intent, flags); + } + + @Override + public List queryBroadcastReceivers(Intent intent, int flags) { + // TODO Auto-generated method stub + return orig.queryBroadcastReceivers(intent, flags); + } + + @Override + public ResolveInfo resolveService(Intent intent, int flags) { + // TODO Auto-generated method stub + return orig.resolveService(intent, flags); + } + + @Override + public List queryIntentServices(Intent intent, int flags) { + // TODO Auto-generated method stub + return orig.queryIntentServices(intent, flags); + } + + @Override + public ProviderInfo resolveContentProvider(String name, int flags) { + // TODO Auto-generated method stub + return orig.resolveContentProvider(name, flags); + } + + @Override + public List queryContentProviders(String processName, + int uid, int flags) { + // TODO Auto-generated method stub + return orig.queryContentProviders(processName, uid, flags); + } + + @Override + public InstrumentationInfo getInstrumentationInfo(ComponentName className, + int flags) throws NameNotFoundException { + // TODO Auto-generated method stub + return orig.getInstrumentationInfo(className, flags); + } + + @Override + public List queryInstrumentation(String targetPackage, + int flags) { + // TODO Auto-generated method stub + return orig.queryInstrumentation(targetPackage, flags); + } + + @Override + public Drawable getDrawable(String packageName, int resid, + ApplicationInfo appInfo) { + // TODO getDrawable + return orig.getDrawable(packageName, resid, appInfo); + } + + @Override + public Drawable getActivityIcon(ComponentName activityName) + throws NameNotFoundException { + // TODO getActivityIcon + PlugInfo plug = PluginManager.getInstance().getPluginByPackageName( + activityName.getPackageName()); + if (plug != null) { + ActivityInfo actInfo = plug.findActivityByClassName(activityName + .getClassName()); + int icon = actInfo.icon; + if (icon != 0) { + return plug.getResources().getDrawable(icon); + } + } + return orig.getActivityIcon(activityName); + } + + @Override + public Drawable getActivityIcon(Intent intent) throws NameNotFoundException { + // TODO getActivityIcon(Intent intent) + return orig.getActivityIcon(intent); + } + + @Override + public Drawable getDefaultActivityIcon() { + // TODO getDefaultActivityIcon + return orig.getDefaultActivityIcon(); + } + + @Override + public Drawable getApplicationIcon(ApplicationInfo info) { + // TODO getApplicationIcon + return orig.getApplicationIcon(info); + } + + @Override + public Drawable getApplicationIcon(String packageName) + throws NameNotFoundException { + // TODO getApplicationIcon + PlugInfo plug = PluginManager.getInstance().getPluginByPackageName( + packageName); + if (plug != null) { + int appIcon = plug.getPackageInfo().applicationInfo.icon; + if (appIcon != 0) { + return plug.getResources().getDrawable(appIcon); + } else { + return null; + } + } + return orig.getApplicationIcon(packageName); + } + + @Override + public Drawable getActivityLogo(ComponentName activityName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getActivityLogo(android.content.Intent) + */ + @Override + public Drawable getActivityLogo(Intent intent) throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getApplicationLogo(android.content. + * pm.ApplicationInfo) + */ + @Override + public Drawable getApplicationLogo(ApplicationInfo info) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getApplicationLogo(java.lang.String) + */ + @Override + public Drawable getApplicationLogo(String packageName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see android.content.pm.PackageManager#getText(java.lang.String, int, + * android.content.pm.ApplicationInfo) + */ + @Override + public CharSequence getText(String packageName, int resid, + ApplicationInfo appInfo) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see android.content.pm.PackageManager#getXml(java.lang.String, int, + * android.content.pm.ApplicationInfo) + */ + @Override + public XmlResourceParser getXml(String packageName, int resid, + ApplicationInfo appInfo) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getApplicationLabel(android.content + * .pm.ApplicationInfo) + */ + @Override + public CharSequence getApplicationLabel(ApplicationInfo info) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getResourcesForActivity(android.content + * .ComponentName) + */ + @Override + public Resources getResourcesForActivity(ComponentName activityName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getResourcesForApplication(android. + * content.pm.ApplicationInfo) + */ + @Override + public Resources getResourcesForApplication(ApplicationInfo app) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getResourcesForApplication(java.lang + * .String) + */ + @Override + public Resources getResourcesForApplication(String appPackageName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getInstallerPackageName(java.lang.String + * ) + */ + @Override + public String getInstallerPackageName(String packageName) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#addPackageToPreferred(java.lang.String) + */ + @Override + public void addPackageToPreferred(String packageName) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#removePackageFromPreferred(java.lang + * .String) + */ + @Override + public void removePackageFromPreferred(String packageName) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see android.content.pm.PackageManager#getPreferredPackages(int) + */ + @Override + public List getPreferredPackages(int flags) { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#addPreferredActivity(android.content + * .IntentFilter, int, android.content.ComponentName[], + * android.content.ComponentName) + */ + @Override + public void addPreferredActivity(IntentFilter filter, int match, + ComponentName[] set, ComponentName activity) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#clearPackagePreferredActivities(java + * .lang.String) + */ + @Override + public void clearPackagePreferredActivities(String packageName) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getPreferredActivities(java.util.List, + * java.util.List, java.lang.String) + */ + @Override + public int getPreferredActivities(List outFilters, + List outActivities, String packageName) { + // TODO Auto-generated method stub + return 0; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#setComponentEnabledSetting(android. + * content.ComponentName, int, int) + */ + @Override + public void setComponentEnabledSetting(ComponentName componentName, + int newState, int flags) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getComponentEnabledSetting(android. + * content.ComponentName) + */ + @Override + public int getComponentEnabledSetting(ComponentName componentName) { + // TODO Auto-generated method stub + return 0; + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#setApplicationEnabledSetting(java.lang + * .String, int, int) + */ + @Override + public void setApplicationEnabledSetting(String packageName, int newState, + int flags) { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see + * android.content.pm.PackageManager#getApplicationEnabledSetting(java.lang + * .String) + */ + @Override + public int getApplicationEnabledSetting(String packageName) { + // TODO Auto-generated method stub + return 0; + } + + /* + * (non-Javadoc) + * + * @see android.content.pm.PackageManager#isSafeMode() + */ + @Override + public boolean isSafeMode() { + // TODO Auto-generated method stub + return false; + } + + @Override + public Intent getLeanbackLaunchIntentForPackage(String packageName) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getPackagesHoldingPermissions( + String[] permissions, int flags) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List queryIntentContentProviders(Intent intent, + int flags) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getActivityBanner(ComponentName activityName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getActivityBanner(Intent intent) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getApplicationBanner(ApplicationInfo info) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getApplicationBanner(String packageName) + throws NameNotFoundException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Drawable getUserBadgedDrawableForDensity(Drawable drawable, + UserHandle user, Rect badgeLocation, int badgeDensity) { + // TODO Auto-generated method stub + return null; + } + + @Override + public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void verifyPendingInstall(int id, int verificationCode) { + // TODO Auto-generated method stub + + } + + @Override + public void extendVerificationTimeout(int id, + int verificationCodeAtTimeout, long millisecondsToDelay) { + // TODO Auto-generated method stub + + } + + @Override + public void setInstallerPackageName(String targetPackage, + String installerPackageName) { + // TODO Auto-generated method stub + + } + + @Override + public PackageInstaller getPackageInstaller() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/android-pluginmgr/src/main/java/androidx/pluginmgr/ReflectionUtils.java b/PlugLoadMgr/src/androidx/pluginmgr/ReflectionUtils.java similarity index 100% rename from android-pluginmgr/src/main/java/androidx/pluginmgr/ReflectionUtils.java rename to PlugLoadMgr/src/androidx/pluginmgr/ReflectionUtils.java diff --git a/android-pluginmgr/src/main/java/androidx/pluginmgr/XmlManifestReader.java b/PlugLoadMgr/src/androidx/pluginmgr/XmlManifestReader.java similarity index 100% rename from android-pluginmgr/src/main/java/androidx/pluginmgr/XmlManifestReader.java rename to PlugLoadMgr/src/androidx/pluginmgr/XmlManifestReader.java diff --git a/android-pluginmgr/.classpath b/android-pluginmgr/.classpath deleted file mode 100644 index 4f18b0d..0000000 --- a/android-pluginmgr/.classpath +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/android-pluginmgr/.gitignore b/android-pluginmgr/.gitignore deleted file mode 100644 index 7f5128b..0000000 --- a/android-pluginmgr/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target/* -/.settings/ diff --git a/android-pluginmgr/.settings/org.eclipse.core.resources.prefs b/android-pluginmgr/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 1f887b6..0000000 --- a/android-pluginmgr/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 diff --git a/android-pluginmgr/.settings/org.eclipse.m2e.core.prefs b/android-pluginmgr/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b..0000000 --- a/android-pluginmgr/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/android-pluginmgr/TODO b/android-pluginmgr/TODO deleted file mode 100644 index ce74eb2..0000000 --- a/android-pluginmgr/TODO +++ /dev/null @@ -1,6 +0,0 @@ -1 PackageManager , meta-data, provider -2 inner & outer ClassLoader -3 load class with extra parameter such as pluginId, think java.lang.String in android -4 framework with android.support -5 android ui thread init plug application -6 service support diff --git a/android-pluginmgr/pom.xml b/android-pluginmgr/pom.xml deleted file mode 100644 index 5ddb651..0000000 --- a/android-pluginmgr/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - 4.0.0 - com.android - pluginmgr - 0.1.4 - androidx.pluginmgr - dynamic load uninstalled apk - - - com.google.dexmaker - dexmaker - 1.0 - - - com.google.android - android - 2.3.3 - - - junit - junit - 4.11 - - - - - - - - maven-compiler-plugin - 3.1 - - - default-testCompile - test-compile - - testCompile - - - src/test/java - 1.6 - 1.6 - UTF-8 - - - - default-compile - compile - - compile - - - src/test/java - 1.6 - 1.6 - UTF-8 - - - - - src/test/java - 1.6 - 1.6 - UTF-8 - - - - - - - - \ No newline at end of file diff --git a/android-pluginmgr/src/main/java/androidx/pluginmgr/PluginPackageManager.java b/android-pluginmgr/src/main/java/androidx/pluginmgr/PluginPackageManager.java deleted file mode 100644 index 6c49d59..0000000 --- a/android-pluginmgr/src/main/java/androidx/pluginmgr/PluginPackageManager.java +++ /dev/null @@ -1,688 +0,0 @@ -/* - * Copyright (C) 2015 HouKx - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package androidx.pluginmgr; - -import java.util.List; - -import android.content.ComponentName; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.FeatureInfo; -import android.content.pm.InstrumentationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PermissionGroupInfo; -import android.content.pm.PermissionInfo; -import android.content.pm.ProviderInfo; -import android.content.pm.ResolveInfo; -import android.content.pm.ServiceInfo; -import android.content.res.Resources; -import android.content.res.XmlResourceParser; -import android.graphics.drawable.Drawable; - -/** - * Customer PackageManager - *

- * - * TODO unfinished, prepare use in {@link PluginContextWrapper#getPackageManager} - * - * @author HouKangxi - * - */ -public class PluginPackageManager extends PackageManager { - private PackageManager orig; - - public PluginPackageManager(PackageManager wrapper) { - this.orig = wrapper; - } - - @Override - public PackageInfo getPackageInfo(String packageName, int flags) - throws NameNotFoundException { - PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( - packageName); - if (plugin != null) { - return plugin.getPackageInfo(); - } - return orig.getPackageInfo(packageName, flags); - } - - @Override - public String[] currentToCanonicalPackageNames(String[] names) { - return orig.currentToCanonicalPackageNames(names); - } - - @Override - public String[] canonicalToCurrentPackageNames(String[] names) { - return orig.canonicalToCurrentPackageNames(names); - } - - @Override - public Intent getLaunchIntentForPackage(String packageName) { - // PlugInfo plugin = - // PluginManager.getInstance().getPluginByPackageName(packageName); - // if (plugin != null) { - // //TODO - // } - return orig.getLaunchIntentForPackage(packageName); - } - - @Override - public int[] getPackageGids(String packageName) - throws NameNotFoundException { - PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( - packageName); - if (plugin != null) { - return plugin.getPackageInfo().gids; - } - return orig.getPackageGids(packageName); - } - - @Override - public PermissionInfo getPermissionInfo(String name, int flags) - throws NameNotFoundException { - // TODO - return orig.getPermissionInfo(name, flags); - } - - @Override - public List queryPermissionsByGroup(String group, int flags) - throws NameNotFoundException { - // TODO - return orig.queryPermissionsByGroup(group, flags); - } - - @Override - public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) - throws NameNotFoundException { - // TODO - return orig.getPermissionGroupInfo(name, flags); - } - - @Override - public List getAllPermissionGroups(int flags) { - // TODO - return orig.getAllPermissionGroups(flags); - } - - @Override - public ApplicationInfo getApplicationInfo(String packageName, int flags) - throws NameNotFoundException { - PlugInfo plugin = PluginManager.getInstance().getPluginByPackageName( - packageName); - if (plugin != null) { - return plugin.getPackageInfo().applicationInfo; - } - return orig.getApplicationInfo(packageName, flags); - } - - @Override - public ActivityInfo getActivityInfo(ComponentName component, int flags) - throws NameNotFoundException { - String packageName = component.getPackageName(); - if (packageName != null) { - PlugInfo plugin = PluginManager.getInstance() - .getPluginByPackageName(packageName); - if (plugin != null) { - String actClassName = component.getClassName(); - if (actClassName != null) { - return plugin.findActivityByClassName(actClassName); - } - } - } - return orig.getActivityInfo(component, flags); - } - - @Override - public ActivityInfo getReceiverInfo(ComponentName component, int flags) - throws NameNotFoundException { - String packageName = component.getPackageName(); - if (packageName != null) { - PlugInfo plugin = PluginManager.getInstance() - .getPluginByPackageName(packageName); - if (plugin != null) { - String className = component.getClassName(); - if (className != null) { - return plugin.findReceiverByClassName(className); - } - } - } - return orig.getReceiverInfo(component, flags); - } - - @Override - public ServiceInfo getServiceInfo(ComponentName component, int flags) - throws NameNotFoundException { - String packageName = component.getPackageName(); - if (packageName != null) { - PlugInfo plugin = PluginManager.getInstance() - .getPluginByPackageName(packageName); - if (plugin != null) { - String className = component.getClassName(); - if (className != null) { - return plugin.findServiceByClassName(className); - } - } - } - return orig.getServiceInfo(component, flags); - } - - @Override - public ProviderInfo getProviderInfo(ComponentName component, int flags) - throws NameNotFoundException { - // TODO getProviderInfo - return orig.getProviderInfo(component, flags); - } - - @Override - public List getInstalledPackages(int flags) { - return orig.getInstalledPackages(flags); - } - - @Override - public int checkPermission(String permName, String pkgName) { - // TODO checkPermission - return orig.checkPermission(permName, pkgName); - } - - @Override - public boolean addPermission(PermissionInfo info) { - // TODO addPermission - return orig.addPermission(info); - } - - @Override - public boolean addPermissionAsync(PermissionInfo info) { - // TODO addPermissionAsync - return orig.addPermission(info); - } - - @Override - public void removePermission(String name) { - // TODO removePermission - orig.removePermission(name); - } - - @Override - public int checkSignatures(String pkg1, String pkg2) { - // TODO checkSignatures - return orig.checkSignatures(pkg1, pkg2); - } - - @Override - public int checkSignatures(int uid1, int uid2) { - // TODO checkSignatures - return orig.checkSignatures(uid1, uid2); - } - - @Override - public String[] getPackagesForUid(int uid) { - // TODO getPackagesForUid - return orig.getPackagesForUid(uid); - } - - @Override - public String getNameForUid(int uid) { - // TODO getNameForUid - return orig.getNameForUid(uid); - } - - @Override - public List getInstalledApplications(int flags) { - return orig.getInstalledApplications(flags); - } - - @Override - public String[] getSystemSharedLibraryNames() { - // TODO getSystemSharedLibraryNames - return orig.getSystemSharedLibraryNames(); - } - - @Override - public FeatureInfo[] getSystemAvailableFeatures() { - // TODO getSystemAvailableFeatures - return orig.getSystemAvailableFeatures(); - } - - @Override - public boolean hasSystemFeature(String name) { - // TODO hasSystemFeature - return orig.hasSystemFeature(name); - } - - @Override - public ResolveInfo resolveActivity(Intent intent, int flags) { - // TODO resolveActivity - // ComponentName compname = intent.getComponent(); - // if(compname!=null){ - // String packageName = compname.getPackageName(); - // if(packageName!=null){ - // PlugInfo plug = - // PluginManager.getInstance().getPluginByPackageName(packageName); - // if (plug != null) { - // String className = compname.getClassName(); - // if(className!=null){ - // return plug.resolveActivity() - // } - // } - // } - // } - return orig.resolveActivity(intent, flags); - } - - @Override - public List queryIntentActivities(Intent intent, int flags) { - // TODO Auto-generated method stub - return orig.queryIntentActivities(intent, flags); - } - - @Override - public List queryIntentActivityOptions(ComponentName caller, - Intent[] specifics, Intent intent, int flags) { - // TODO Auto-generated method stub - return orig - .queryIntentActivityOptions(caller, specifics, intent, flags); - } - - @Override - public List queryBroadcastReceivers(Intent intent, int flags) { - // TODO Auto-generated method stub - return orig.queryBroadcastReceivers(intent, flags); - } - - @Override - public ResolveInfo resolveService(Intent intent, int flags) { - // TODO Auto-generated method stub - return orig.resolveService(intent, flags); - } - - @Override - public List queryIntentServices(Intent intent, int flags) { - // TODO Auto-generated method stub - return orig.queryIntentServices(intent, flags); - } - - @Override - public ProviderInfo resolveContentProvider(String name, int flags) { - // TODO Auto-generated method stub - return orig.resolveContentProvider(name, flags); - } - - @Override - public List queryContentProviders(String processName, - int uid, int flags) { - // TODO Auto-generated method stub - return orig.queryContentProviders(processName, uid, flags); - } - - @Override - public InstrumentationInfo getInstrumentationInfo(ComponentName className, - int flags) throws NameNotFoundException { - // TODO Auto-generated method stub - return orig.getInstrumentationInfo(className, flags); - } - - @Override - public List queryInstrumentation(String targetPackage, - int flags) { - // TODO Auto-generated method stub - return orig.queryInstrumentation(targetPackage, flags); - } - - @Override - public Drawable getDrawable(String packageName, int resid, - ApplicationInfo appInfo) { - // TODO getDrawable - return orig.getDrawable(packageName, resid, appInfo); - } - - @Override - public Drawable getActivityIcon(ComponentName activityName) - throws NameNotFoundException { - // TODO getActivityIcon - PlugInfo plug = PluginManager.getInstance().getPluginByPackageName( - activityName.getPackageName()); - if (plug != null) { - ActivityInfo actInfo = plug.findActivityByClassName(activityName - .getClassName()); - int icon = actInfo.icon; - if (icon != 0) { - return plug.getResources().getDrawable(icon); - } - } - return orig.getActivityIcon(activityName); - } - - @Override - public Drawable getActivityIcon(Intent intent) throws NameNotFoundException { - // TODO getActivityIcon(Intent intent) - return orig.getActivityIcon(intent); - } - - @Override - public Drawable getDefaultActivityIcon() { - // TODO getDefaultActivityIcon - return orig.getDefaultActivityIcon(); - } - - @Override - public Drawable getApplicationIcon(ApplicationInfo info) { - // TODO getApplicationIcon - return orig.getApplicationIcon(info); - } - - @Override - public Drawable getApplicationIcon(String packageName) - throws NameNotFoundException { - // TODO getApplicationIcon - PlugInfo plug = PluginManager.getInstance().getPluginByPackageName( - packageName); - if (plug != null) { - int appIcon = plug.getPackageInfo().applicationInfo.icon; - if (appIcon != 0) { - return plug.getResources().getDrawable(appIcon); - } else { - return null; - } - } - return orig.getApplicationIcon(packageName); - } - - @Override - public Drawable getActivityLogo(ComponentName activityName) - throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getActivityLogo(android.content.Intent) - */ - @Override - public Drawable getActivityLogo(Intent intent) throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getApplicationLogo(android.content. - * pm.ApplicationInfo) - */ - @Override - public Drawable getApplicationLogo(ApplicationInfo info) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getApplicationLogo(java.lang.String) - */ - @Override - public Drawable getApplicationLogo(String packageName) - throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see android.content.pm.PackageManager#getText(java.lang.String, int, - * android.content.pm.ApplicationInfo) - */ - @Override - public CharSequence getText(String packageName, int resid, - ApplicationInfo appInfo) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see android.content.pm.PackageManager#getXml(java.lang.String, int, - * android.content.pm.ApplicationInfo) - */ - @Override - public XmlResourceParser getXml(String packageName, int resid, - ApplicationInfo appInfo) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getApplicationLabel(android.content - * .pm.ApplicationInfo) - */ - @Override - public CharSequence getApplicationLabel(ApplicationInfo info) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getResourcesForActivity(android.content - * .ComponentName) - */ - @Override - public Resources getResourcesForActivity(ComponentName activityName) - throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getResourcesForApplication(android. - * content.pm.ApplicationInfo) - */ - @Override - public Resources getResourcesForApplication(ApplicationInfo app) - throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getResourcesForApplication(java.lang - * .String) - */ - @Override - public Resources getResourcesForApplication(String appPackageName) - throws NameNotFoundException { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getInstallerPackageName(java.lang.String - * ) - */ - @Override - public String getInstallerPackageName(String packageName) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#addPackageToPreferred(java.lang.String) - */ - @Override - public void addPackageToPreferred(String packageName) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#removePackageFromPreferred(java.lang - * .String) - */ - @Override - public void removePackageFromPreferred(String packageName) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see android.content.pm.PackageManager#getPreferredPackages(int) - */ - @Override - public List getPreferredPackages(int flags) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#addPreferredActivity(android.content - * .IntentFilter, int, android.content.ComponentName[], - * android.content.ComponentName) - */ - @Override - public void addPreferredActivity(IntentFilter filter, int match, - ComponentName[] set, ComponentName activity) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#clearPackagePreferredActivities(java - * .lang.String) - */ - @Override - public void clearPackagePreferredActivities(String packageName) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getPreferredActivities(java.util.List, - * java.util.List, java.lang.String) - */ - @Override - public int getPreferredActivities(List outFilters, - List outActivities, String packageName) { - // TODO Auto-generated method stub - return 0; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#setComponentEnabledSetting(android. - * content.ComponentName, int, int) - */ - @Override - public void setComponentEnabledSetting(ComponentName componentName, - int newState, int flags) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getComponentEnabledSetting(android. - * content.ComponentName) - */ - @Override - public int getComponentEnabledSetting(ComponentName componentName) { - // TODO Auto-generated method stub - return 0; - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#setApplicationEnabledSetting(java.lang - * .String, int, int) - */ - @Override - public void setApplicationEnabledSetting(String packageName, int newState, - int flags) { - // TODO Auto-generated method stub - - } - - /* - * (non-Javadoc) - * - * @see - * android.content.pm.PackageManager#getApplicationEnabledSetting(java.lang - * .String) - */ - @Override - public int getApplicationEnabledSetting(String packageName) { - // TODO Auto-generated method stub - return 0; - } - - /* - * (non-Javadoc) - * - * @see android.content.pm.PackageManager#isSafeMode() - */ - @Override - public boolean isSafeMode() { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/android-pluginmgr/target/.gitignore b/android-pluginmgr/target/.gitignore deleted file mode 100644 index 840e7d3..0000000 --- a/android-pluginmgr/target/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/classes/ From ee221311599bac7e0e85f49c78b28067a191dd5d Mon Sep 17 00:00:00 2001 From: kymjs Date: Sat, 28 Feb 2015 17:40:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E4=B8=8E=E7=90=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PlugLoadMgr/bin/R.txt | 4 - .../androidx/pluginmgr/ActivityOverider.class | Bin 14094 -> 14080 bytes ...kClassLoader.class => CJClassLoader.class} | Bin 2226 -> 2205 bytes .../classes/androidx/pluginmgr/PlugInfo.class | Bin 9254 -> 9270 bytes .../pluginmgr/PluginClassLoader.class | Bin 4483 -> 4476 bytes .../androidx/pluginmgr/PluginManager$1.class | Bin 1870 -> 1870 bytes .../androidx/pluginmgr/PluginManager.class | Bin 15758 -> 15639 bytes .../classes/androidx/pluginmgr/R$attr.class | Bin 340 -> 0 bytes .../androidx/pluginmgr/R$drawable.class | Bin 456 -> 0 bytes .../classes/androidx/pluginmgr/R$string.class | Bin 447 -> 0 bytes .../classes/androidx/pluginmgr/R$style.class | Bin 491 -> 0 bytes .../bin/classes/androidx/pluginmgr/R.class | Bin 487 -> 0 bytes PlugLoadMgr/bin/jarlist.cache | 3 - PlugLoadMgr/bin/plugloadmgr.jar | Bin 72126 -> 72051 bytes PlugLoadMgr/gen/androidx/pluginmgr/R.java | 47 - ...orkClassLoader.java => CJClassLoader.java} | 4 +- .../src/androidx/pluginmgr/PlugInfo.java | 643 ++++++------ .../androidx/pluginmgr/PluginClassLoader.java | 2 +- .../src/androidx/pluginmgr/PluginManager.java | 951 +++++++++--------- 19 files changed, 811 insertions(+), 843 deletions(-) delete mode 100644 PlugLoadMgr/bin/R.txt rename PlugLoadMgr/bin/classes/androidx/pluginmgr/{FrameworkClassLoader.class => CJClassLoader.class} (74%) delete mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class delete mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class delete mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$string.class delete mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R$style.class delete mode 100644 PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class delete mode 100644 PlugLoadMgr/bin/jarlist.cache delete mode 100644 PlugLoadMgr/gen/androidx/pluginmgr/R.java rename PlugLoadMgr/src/androidx/pluginmgr/{FrameworkClassLoader.java => CJClassLoader.java} (94%) diff --git a/PlugLoadMgr/bin/R.txt b/PlugLoadMgr/bin/R.txt deleted file mode 100644 index 637d9e8..0000000 --- a/PlugLoadMgr/bin/R.txt +++ /dev/null @@ -1,4 +0,0 @@ -int drawable ic_launcher 0x7f020000 -int string app_name 0x7f030000 -int style AppBaseTheme 0x7f040000 -int style AppTheme 0x7f040001 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityOverider.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/ActivityOverider.class index 48baf0e3e76ac0e7d0afe8792f1d1a3d848770ae..6ca2a9d0cb3603cd36a0d943a666c0591a3d0a09 100644 GIT binary patch delta 49 zcmeCnYslNMh&x4)h?`M+vV)wMf?H8yZfbdcQMPkVVsWugequ^$ku?{?CWbBS44WAl)F(G` O2y?;}ZGO%zsSN<+0u}NA diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/FrameworkClassLoader.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/CJClassLoader.class similarity index 74% rename from PlugLoadMgr/bin/classes/androidx/pluginmgr/FrameworkClassLoader.class rename to PlugLoadMgr/bin/classes/androidx/pluginmgr/CJClassLoader.class index c68080240713086d6362ed3e76469a2761fb3d8e..3b562edbae819f75dd84bd29d0b8dc663109690f 100644 GIT binary patch delta 82 zcmdlaI9E{h)W2Q(7#J9g81mQ|m>3xp67y1u@-tH^^b2xI(=+pO(~I<-y(a2x6<6}X TDz)){JS(%1v)ASfHZLXsfEXL? delta 72 zcmbO$xJgjp)W2Q(7#J9g81mQ|m>3z%x^?n>7Ey%2#*gu= NT#|74&B1J5OaN?@7_k5V diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PlugInfo.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PlugInfo.class index 01020b5d384f92364b35617150bb6a2710c03227..87f9128951c288e4bd9d7354bf7657f53da39727 100644 GIT binary patch delta 886 zcmZ9KT}V@57{~ul+i|!#KjuC>b92*$E~i^s2{z4-#8&y4lvC?MQ$wQCEGR6>yRQ1+ zfxzo1DvbooO6a0c%Lt5wte}g6E;53&!bqtePtipe=kPwi|L=L;_dT2|k;o@qEH46K4s5aO}2PLL-NN&jk# z)XD$V);~47EMpYrSxdxR4LxcQgF2W{&pFBaZ99eR5)u{CBvYHEXEzTeA5vQ-X@i1x z#G*rX?UZC6?C6rz&Gptg^?(=$#po8JM~uT_^ons*GiI$v)MGH>xSYEWKAb=hC$U!6 zg*eUawn;K^z&=5yk$HQV)T^Ri6LnD3AyIFLIw66B)T}Eo=s4L51mjsxX_kx`Ei_Bk;yM5)eu1Z?e+&PzD zS(1ENn;Ue8=$FQO-B~fDgF<>OxFdl<3zpq}#UwmV@q=@!aoOqhw2WKkI|#SC(yH&yC> zPYPFflaze%)@fdkw~PuTwHfsIuFaYD`f1||VRL$!xdb{Y6}t>>D(9B;n|WKLipYt! z!bIC(rtL_fDmbYc9;!hm)gqVb5Tbe%(+-qS1BWxt#YW+$CIl(UGZ{s+hZB9}N-K=i V#*Mxjr2}!)$=7{V)WwUw&~GLl#y$W5 delta 881 zcmZ9ISx8i26vzL^@y_Hpi`%GooaK&VI$}B*8JJ5hHCdWFnVDd@MM7ptP*fzo^j2~p zu!r7SFhOC$!k}nT0;Qlx@gXImsE3MzN(`#wtzLS#-0%GUzjMB2qT*`Bh2f!@zMdUklMnfijSL(R}5xEhsl&3X|TZ_&W#>777#1|B4CwIpuUblEdKF0;qm{~ z34dyK#Z6Kn&&O3*s}YGB7*U64)bqOd9>;DWO+uQ5?3KAK($mVL@xAH+N!p>H6H(}r zJ-a12h(sKc)XjAXwd!Fpdd27yzUceB70MQ4PxlZ^D5Itivr7<2K4= zU4=XBQ2jD2U(KRX?o`{0Qn5xJ=q^mShXmY5Iv!vn9-;(~#GjVyKSq`qiSlSbz0Av& z|LSTAcD6cetTWO(i#R-i8&7%BnPj*m$)K~^`b?7NlDv>)P7+miUUufu0++ZPT%Hn8 zUdod!@{yDfz0%pNus6cq3QOV`SCHNd_fkE#xiaiF7-Z)Ul7E!Ded5cm5Pi}6R$Kw) zoAB>?U$Hw#D>@%^XBhEQf?quD4pD>-EuMg4ghD1=uJr`T%x67CicOeZXA2%1S@@l2 zQ)mr+?XPLmVkwg~Ek)`f zZ!$M(u}ZdhIl4EXl~S&x4pStS^*Kvgfbv!eyM3kB%`i}b*oAOY5%>7Ua?7MDmlJJ8 zG;M>GLP)0Va8d=lv;*n16WLUWAXTA=c3}%ub7kuJs0IY65joVruTu+Y4{QE1WgpDc V%H95Ir41I^&y)Tt>R?k^@HY=oybAyT diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginClassLoader.class index f31df07e3102f2ec9953b52196743e017290e552..f20f581d0df36e799d9ec48781056c5654eeb0c3 100644 GIT binary patch delta 35 qcmZox{-d;EGnbe`VqQv7er8IAenC!YdS+g3dXc`f*X9dco7n*RI1R@D delta 42 xcmeyP)U3Q=GncG-VqQv7er8IAenC!YdS+g3dXc_cQDSatd45s$=965T*#K%Q5bpp0 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager$1.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager$1.class index b5fd0b0aaeea5eeea23dedc44dafe31ff6b56115..ee02731511c187a60e939c7a8e796358494e46b7 100644 GIT binary patch delta 55 zcmX@dcaCp^1{>ps$(n5Cs+$=&7`HMAGHzoKV%*Lk0i-1vcQB|j?qbkn+|8iNxQD@< Kao^;lY@Gn3P!84r delta 55 zcmX@dcaCp^1{>p|$(n5Cs!JF+7?&{!GA?HjVqC!>0i-1vS2CzFu4d3=T*IKtxR$}3 KasA|@Y@Gm;L=G|l diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/PluginManager.class index c0b19fb616b1e8999b3954ab2b95e2aaf96330e2..ad8049cc453c60416decb25395ae7d363f5156b3 100644 GIT binary patch literal 15639 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 bm8JK(IiBI#Gq9s$s~+SX2w}CSgdPn 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 diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$attr.class deleted file mode 100644 index 7424329b144623804a3b0ff2fcdf89ff66b3c560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmZ{fPfNo<5XIlL`J*w~T6-y8J*Wp4y((S`g+frM()%V^;+AwHn~nIjJP98B0DdTO zHh5GP-rG0B48QsM{`drNg=vfdVJ1y!8(qGN=en!3*;ZDpPNZ`-MnD*Ez-i=tdjuZVAKFvo#@@H>FB2#BPcZ5n+^RqwczGuI!`CYekr3O(E;GwA$z2V&I;1 zOE}K{1-K?84^3wawa|V|w7T##gmh_)vh!NDt!iUT2-CloFq^*vmta;t8SLa4Sz}J3 n&p>$oj-59y43Mz;Hn7JJNc(@tzTfu`dL3cRp7i5~IKu1)$Ye;% diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R$drawable.class deleted file mode 100644 index 817d8b01557c9a18bbbb75f7a363d7430a3d5c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmaJ-O-lnY6r8u)?$+)0!&*Noh!+v{;G$QHmx53z3RQZQbT_mqX;!jb_2zF94}u4O zfImu1)_M^!ki7SX%w#4XpKtE~POS8tx^UJ+QIlK1zh< zjNP+HGBt^=#xou-2vrf^N|vj5$~A%dgi1G-LW#vW!96$}5lX!@;qH?Itbh=PD8nN( z214=6d_Ly-#y&u34bqs&5!1rXOVH~US^-?FhG?K-^cGW*5q1av8a^Wg*J-X}ej%*7 zH$1lPje)*WT=yi)GM@R^BDDV!GC_W_>f~2G%7Wn_`X}opgMXJTbS$o=@peaN zCOADmR7&VU%8No29(EbJf7uYR{4~xfGexJfVS-avK^-1#qX0)#&2l^b8`fT_t6<&C sR&Qg&Du$=-_`31rBZG80tJ4C$Stq1&eSwk9Kt)bHzg))-a6@ziy95CeD@mLryd7uD> z4G$(P1(||n4>l}@QddUeZaE){q|b*T$@<-R#KQqkq{8c_)zZ=~3~YO-pg{83RHh7# z?*B$E8Qh0>nT*7(RMJ-OOt~T_ohTAXJLG99QX371>R&1hralPHX=8(qmm@3Wf~taA zUw0fh+Mr7)pgHx5esKlQ-&~>eN-&2liY{fKNdl+vbr&>FUMT*M72P~}L-m(tY0ZkJ Yc)B*RgIz7Kr(+Fu$}ase?Bf8nZ?aZe-T(jq diff --git a/PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class b/PlugLoadMgr/bin/classes/androidx/pluginmgr/R.class deleted file mode 100644 index 54e20bb2518ae3fa9ad76c68a16936d15bb396b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmZ{g%}T>S6ot>VNv76nYpvC^b|Ws-g+aH9n}Q$|g(}@on;}j~Co)O>c`R3g3m?FT z5^qx7MF#G7?$68|?$`InCxA2b1y%@cX+oRm@FjSR7m+se$Oa<;htQnKCmF=jM8WN3 zrluLeyU<2wmxRjU(U{;2l2Fx9!D<~YJVIlrjk;OPC(7Q-NvsI1VKSBRSX!OuzeOi| z&?%uaEc^SMP`gVOcB-y){(?6;$&C=|*TyJ2h-I3pRG>xh%kCe@EVJw_hrl+WUpf_9 z`Mk7P{gVQ_gkI@%nptfkHnS80Jwo@N$=BSqn`TU$f_KH+29t~MI10{!A_v^#cU0fF su!0)LybV@s9P5R4nd?P=qlgVOnfq|C$^9+(Xfr#^9j4Ex%iM$i1F|u2$^ZZW diff --git a/PlugLoadMgr/bin/jarlist.cache b/PlugLoadMgr/bin/jarlist.cache deleted file mode 100644 index 0565465..0000000 --- a/PlugLoadMgr/bin/jarlist.cache +++ /dev/null @@ -1,3 +0,0 @@ -# cache for current jar dependency. DO NOT EDIT. -# format is -# Encoding is UTF-8 diff --git a/PlugLoadMgr/bin/plugloadmgr.jar b/PlugLoadMgr/bin/plugloadmgr.jar index 77b948ae1a0912e2b8ec345cfc5d60c14ea5717a..f4e7da48a684a07476b8a1d8b3059c519b7357e5 100644 GIT binary patch delta 22143 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 delta 22154 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 activities; - private ResolveInfo mainActivity; - private List services; - private List receivers; - private List providers; - // - private transient PluginClassLoader classLoader; - private transient Application application; - private transient AssetManager assetManager; - private transient Resources resources; - PluginContextWrapper appWrapper; - // - // private transient volatile String currentActivityClass; - - public String getPackageName() { - return packageInfo.packageName; - } - - // ================== FLAGS STARD ================== - /** - * 按下back键时是否 finish Activity - */ - private static final int FLAG_FinishActivityOnbackPressed = 1; - /** - * 是否调用父类的onBackPressed()方法 - */ - private static final int FLAG_INVOKE_SUPER_ONBACKPRESSED = 2; - - // ================== FLAGS END ================== - /** - * 按Back键时是否销毁Activity - */ - public boolean isFinishActivityOnbackPressed(ActivityInfo act) { - if (act == null) { - return false; - } - int flags = getFlags(act); - return containsFlag(flags, FLAG_FinishActivityOnbackPressed); - } - - public boolean isInvokeSuperOnbackPressed(ActivityInfo act) { - if (act == null) { - return true; - } - int flags = getFlags(act); - if (flags == 0) { - return true;//默认true - } - return containsFlag(flags, FLAG_INVOKE_SUPER_ONBACKPRESSED); - } - - public void setInvokeSuperOnbackPressed(ActivityInfo act, - boolean invokeSuperOnbackPressed) { - if (act == null) { - return; - } - if (invokeSuperOnbackPressed) { - setFlag(act, FLAG_INVOKE_SUPER_ONBACKPRESSED); - } else { - unsetFlag(act, FLAG_INVOKE_SUPER_ONBACKPRESSED); - } - } - - public void setFinishActivityOnbackPressed(ActivityInfo act, - boolean finishOnbackPressed) { - if (act == null) { - return; - } - if (finishOnbackPressed) { - setFlag(act, FLAG_FinishActivityOnbackPressed); - } else { - unsetFlag(act, FLAG_FinishActivityOnbackPressed); - } - } - - ActivityInfo findActivityByClassNameFromPkg(String actName) { - if (packageInfo.activities == null) { - return null; - } - for (ActivityInfo act : packageInfo.activities) { - if(act.name.equals(actName)){ - return act; - } - } - return null; - } - public ActivityInfo findActivityByClassName(String actName) { - if (packageInfo.activities == null) { - return null; - } - ResolveInfo act = activities.get(actName); - if (act == null) { - return null; - } - return act.activityInfo; - } - - public ActivityInfo findActivityByAction(String action) { - if (activities == null || activities.isEmpty()) { - return null; - } - for (ResolveInfo act : activities.values()) { - if (act.filter != null && act.filter.hasAction(action)) { - return act.activityInfo; - } - } - return null; - } - - public ActivityInfo findReceiverByClassName(String className) { - if (packageInfo.receivers == null) { - return null; - } - for (ActivityInfo receiver : packageInfo.receivers) { - if (receiver.name.equals(className)) { - return receiver; - } - } - return null; - - } - public ServiceInfo findServiceByClassName(String className) { - if (packageInfo.services == null) { - return null; - } - for (ServiceInfo service : packageInfo.services) { - if (service.name.equals(className)) { - return service; - } - } - return null; - - } - public ServiceInfo findServiceByAction(String action) { - if (services == null || services.isEmpty()) { - return null; - } - for (ResolveInfo ser : services) { - if (ser.filter != null && ser.filter.hasAction(action)) { - return ser.serviceInfo; - } - } - return null; - } - public void addActivity(ResolveInfo activity) { - if (activities == null) { - activities = new HashMap(20); - } - activities.put(activity.activityInfo.name,activity); - if (mainActivity == null && activity.filter != null - && activity.filter.hasAction("android.intent.action.MAIN") - && activity.filter.hasCategory("android.intent.category.LAUNCHER") - ) { - mainActivity = activity; - } - } - - public void addReceiver(ResolveInfo receiver) { - if (receivers == null) { - receivers = new ArrayList(); - } - receivers.add(receiver); - } - - public void addService(ResolveInfo service) { - if (services == null) { - services = new ArrayList(); - } - services.add(service); - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getFilePath() { - return filePath; - } - - public void setFilePath(String filePath) { - this.filePath = filePath; - } - - public PackageInfo getPackageInfo() { - return packageInfo; - } - - public void setPackageInfo(PackageInfo packageInfo) { - this.packageInfo = packageInfo; - activities = new HashMap(packageInfo.activities.length); - } - - public PluginClassLoader getClassLoader() { - return classLoader; - } - - public void setClassLoader(PluginClassLoader classLoader) { - this.classLoader = classLoader; - } - - public Application getApplication() { - return application; - } - - public void setApplication(Application application) { - this.application = application; - } - - public AssetManager getAssetManager() { - return assetManager; - } - - public void setAssetManager(AssetManager assetManager) { - this.assetManager = assetManager; - } - - public Resources getResources() { - return resources; - } - - public void setResources(Resources resources) { - this.resources = resources; - } - - // public String getCurrentActivityClass() { - // return currentActivityClass; - // } - // - // public void setCurrentActivityClass(String currentActivityClass) { - // this.currentActivityClass = currentActivityClass; - // } - - public Collection getActivities() { - if (activities == null) { - return null; - } - return activities.values(); - } - - public List getServices() { - return services; - } - - public void setServices(List services) { - this.services = services; - } - - public List getProviders() { - return providers; - } - - public void setProviders(List providers) { - this.providers = providers; - } - - public ResolveInfo getMainActivity() { - return mainActivity; - } - - public List getReceivers() { - return receivers; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PlugInfo other = (PlugInfo) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } - - @Override - public String toString() { - return super.toString() + "[ id=" + id + ", pkg=" + getPackageName() - + " ]"; - } - - private static synchronized int getFlags(ActivityInfo act) { - return act.logo; - } - - private static synchronized void setFlag(ActivityInfo act, int flag) { - act.logo |= flag; - } - - private static synchronized void unsetFlag(ActivityInfo act, int flag) { - act.logo &= ~flag; - } - - private static boolean containsFlag(int vFlags, int flag) { - return (vFlags & flag) == flag; - } + private String id; + private String filePath; + private PackageInfo packageInfo; + private ResolveInfo mainActivity; + private Map activities; // 插件的全部Activity + private List services; // 插件的全部services + private List receivers; // 插件的全部receivers + private List providers; // 插件的全部providers + + private transient PluginClassLoader classLoader; + private transient Application application; + private transient AssetManager assetManager; + private transient Resources resources; + /* package */PluginContextWrapper appWrapper; + + // + // private transient volatile String currentActivityClass; + + public String getPackageName() { + return packageInfo.packageName; + } + + // ================== FLAGS STARD ================== + /** + * 按下back键时是否 finish Activity + */ + private static final int FLAG_FinishActivityOnbackPressed = 1; + /** + * 是否调用父类的onBackPressed()方法 + */ + private static final int FLAG_INVOKE_SUPER_ONBACKPRESSED = 2; + + // ================== FLAGS END ================== + /** + * 按Back键时是否销毁Activity + */ + public boolean isFinishActivityOnbackPressed(ActivityInfo act) { + if (act == null) { + return false; + } + int flags = getFlags(act); + return containsFlag(flags, FLAG_FinishActivityOnbackPressed); + } + + public boolean isInvokeSuperOnbackPressed(ActivityInfo act) { + if (act == null) { + return true; + } + int flags = getFlags(act); + if (flags == 0) { + return true;// 默认true + } + return containsFlag(flags, FLAG_INVOKE_SUPER_ONBACKPRESSED); + } + + public void setInvokeSuperOnbackPressed(ActivityInfo act, + boolean invokeSuperOnbackPressed) { + if (act == null) { + return; + } + if (invokeSuperOnbackPressed) { + setFlag(act, FLAG_INVOKE_SUPER_ONBACKPRESSED); + } else { + unsetFlag(act, FLAG_INVOKE_SUPER_ONBACKPRESSED); + } + } + + public void setFinishActivityOnbackPressed(ActivityInfo act, + boolean finishOnbackPressed) { + if (act == null) { + return; + } + if (finishOnbackPressed) { + setFlag(act, FLAG_FinishActivityOnbackPressed); + } else { + unsetFlag(act, FLAG_FinishActivityOnbackPressed); + } + } + + ActivityInfo findActivityByClassNameFromPkg(String actName) { + if (packageInfo.activities == null) { + return null; + } + for (ActivityInfo act : packageInfo.activities) { + if (act.name.equals(actName)) { + return act; + } + } + return null; + } + + public ActivityInfo findActivityByClassName(String actName) { + if (packageInfo.activities == null) { + return null; + } + ResolveInfo act = activities.get(actName); + if (act == null) { + return null; + } + return act.activityInfo; + } + + public ActivityInfo findActivityByAction(String action) { + if (activities == null || activities.isEmpty()) { + return null; + } + for (ResolveInfo act : activities.values()) { + if (act.filter != null && act.filter.hasAction(action)) { + return act.activityInfo; + } + } + return null; + } + + public ActivityInfo findReceiverByClassName(String className) { + if (packageInfo.receivers == null) { + return null; + } + for (ActivityInfo receiver : packageInfo.receivers) { + if (receiver.name.equals(className)) { + return receiver; + } + } + return null; + + } + + public ServiceInfo findServiceByClassName(String className) { + if (packageInfo.services == null) { + return null; + } + for (ServiceInfo service : packageInfo.services) { + if (service.name.equals(className)) { + return service; + } + } + return null; + + } + + public ServiceInfo findServiceByAction(String action) { + if (services == null || services.isEmpty()) { + return null; + } + for (ResolveInfo ser : services) { + if (ser.filter != null && ser.filter.hasAction(action)) { + return ser.serviceInfo; + } + } + return null; + } + + public void addActivity(ResolveInfo activity) { + if (activities == null) { + activities = new HashMap(20); + } + activities.put(activity.activityInfo.name, activity); + if (mainActivity == null + && activity.filter != null + && activity.filter.hasAction("android.intent.action.MAIN") + && activity.filter + .hasCategory("android.intent.category.LAUNCHER")) { + mainActivity = activity; + } + } + + public void addReceiver(ResolveInfo receiver) { + if (receivers == null) { + receivers = new ArrayList(); + } + receivers.add(receiver); + } + + public void addService(ResolveInfo service) { + if (services == null) { + services = new ArrayList(); + } + services.add(service); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFilePath() { + return filePath; + } + + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + public PackageInfo getPackageInfo() { + return packageInfo; + } + + public void setPackageInfo(PackageInfo packageInfo) { + this.packageInfo = packageInfo; + activities = new HashMap( + packageInfo.activities.length); + } + + public PluginClassLoader getClassLoader() { + return classLoader; + } + + public void setClassLoader(PluginClassLoader classLoader) { + this.classLoader = classLoader; + } + + public Application getApplication() { + return application; + } + + public void setApplication(Application application) { + this.application = application; + } + + public AssetManager getAssetManager() { + return assetManager; + } + + public void setAssetManager(AssetManager assetManager) { + this.assetManager = assetManager; + } + + public Resources getResources() { + return resources; + } + + public void setResources(Resources resources) { + this.resources = resources; + } + + // public String getCurrentActivityClass() { + // return currentActivityClass; + // } + // + // public void setCurrentActivityClass(String currentActivityClass) { + // this.currentActivityClass = currentActivityClass; + // } + + public Collection getActivities() { + if (activities == null) { + return null; + } + return activities.values(); + } + + public List getServices() { + return services; + } + + public void setServices(List services) { + this.services = services; + } + + public List getProviders() { + return providers; + } + + public void setProviders(List providers) { + this.providers = providers; + } + + public ResolveInfo getMainActivity() { + return mainActivity; + } + + public List getReceivers() { + return receivers; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PlugInfo other = (PlugInfo) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + @Override + public String toString() { + return super.toString() + "[ id=" + id + ", pkg=" + getPackageName() + + " ]"; + } + + private static synchronized int getFlags(ActivityInfo act) { + return act.logo; + } + + private static synchronized void setFlag(ActivityInfo act, int flag) { + act.logo |= flag; + } + + private static synchronized void unsetFlag(ActivityInfo act, int flag) { + act.logo &= ~flag; + } + + private static boolean containsFlag(int vFlags, int flag) { + return (vFlags & flag) == flag; + } } diff --git a/PlugLoadMgr/src/androidx/pluginmgr/PluginClassLoader.java b/PlugLoadMgr/src/androidx/pluginmgr/PluginClassLoader.java index 76f0605..8669415 100644 --- a/PlugLoadMgr/src/androidx/pluginmgr/PluginClassLoader.java +++ b/PlugLoadMgr/src/androidx/pluginmgr/PluginClassLoader.java @@ -87,7 +87,7 @@ private Class findByParent(String name,boolean throwEx)throws ClassNotFound try { ClassLoader parent = getParent(); if (parent != null) { - if (parent.getClass() == FrameworkClassLoader.class) { + if (parent.getClass() == CJClassLoader.class) { parent = parent.getParent(); } if (parent != null) { diff --git a/PlugLoadMgr/src/androidx/pluginmgr/PluginManager.java b/PlugLoadMgr/src/androidx/pluginmgr/PluginManager.java index bf6a3c8..4f54595 100644 --- a/PlugLoadMgr/src/androidx/pluginmgr/PluginManager.java +++ b/PlugLoadMgr/src/androidx/pluginmgr/PluginManager.java @@ -35,476 +35,493 @@ import android.util.Log; /** - * The Plug-in Manager + * The Plug-in Manager
+ * 命名规则:以app开头的,是与宿主app相关变量;以plug开头的,是插件相关变量 + * * * @author HouKangxi + * @author kymjs */ public class PluginManager implements FileFilter { - private static final String tag = "plugmgr"; - - private static final PluginManager instance = new PluginManager(); - - private final Map pluginIdToInfoMap = new ConcurrentHashMap(); - private final Map pluginPkgToInfoMap = new ConcurrentHashMap(); - private Context context; - private String dexOutputPath; - private volatile boolean hasInit = false; - private File dexInternalStoragePath; - private FrameworkClassLoader frameworkClassLoader; - private PluginActivityLifeCycleCallback pluginActivityLifeCycleCallback; - private volatile Activity actFrom; - - private PluginManager() { - } - - - public static PluginManager getInstance(Context context) { - if (instance.hasInit || context == null) { - if (instance.actFrom == null && context instanceof Activity) { - instance.actFrom = (Activity) context; - } - return instance; - } - Context ctx = context; - if (context instanceof Activity) { - instance.actFrom = (Activity) context; - ctx = ((Activity) context).getApplication(); - } else if (context instanceof Service) { - ctx = ((Service) context).getApplication(); - } else if (context instanceof Application) { - ctx = (Application) context; - } else { - ctx = context.getApplicationContext(); - } - synchronized (PluginManager.class) { - instance.init(ctx); - } - return instance; - } - - static PluginManager getInstance() { - return instance; - } - - public boolean startMainActivity(Context context, String pkgOrId) { - Log.d(tag, "startMainActivity by:" + pkgOrId); - PlugInfo plug = preparePlugForStartActivity(context, pkgOrId); - if (frameworkClassLoader == null) { - Log.e(tag, "startMainActivity: frameworkClassLoader == null!"); - return false; - } - if (plug.getMainActivity() == null) { - Log.e(tag, "startMainActivity: plug.getMainActivity() == null!"); - return false; - } - if (plug.getMainActivity().activityInfo == null) { - Log.e(tag, - "startMainActivity: plug.getMainActivity().activityInfo == null!"); - return false; - } - String className = frameworkClassLoader.newActivityClassName( - plug.getId(), plug.getMainActivity().activityInfo.name); - context.startActivity(new Intent().setComponent(new ComponentName( - context, className))); - return true; - } - - public void startActivity(Context context, Intent intent) { - performStartActivity(context, intent); - context.startActivity(intent); - } - - public void startActivityForResult(Activity activity, Intent intent, - int requestCode) { - performStartActivity(context, intent); - activity.startActivityForResult(intent, requestCode); - } - - private PlugInfo preparePlugForStartActivity(Context context, - String plugIdOrPkg) { - PlugInfo plug = null; - plug = getPluginByPackageName(plugIdOrPkg); - if (plug == null) { - plug = getPluginById(plugIdOrPkg); - } - if (plug == null) { - throw new IllegalArgumentException("plug not found by:" - + plugIdOrPkg); - } - return plug; - } - - private void performStartActivity(Context context, Intent intent) { - checkInit(); - - String plugIdOrPkg; - String actName; - ComponentName origComp = intent.getComponent(); - if (origComp != null) { - plugIdOrPkg = origComp.getPackageName(); - actName = origComp.getClassName(); - } else { - throw new IllegalArgumentException( - "plug intent must set the ComponentName!"); - } - PlugInfo plug = preparePlugForStartActivity(context, plugIdOrPkg); - String className = frameworkClassLoader.newActivityClassName( - plug.getId(), actName); - Log.i(tag, "performStartActivity: " + actName); - ComponentName comp = new ComponentName(context, className); - intent.setAction(null); - intent.setComponent(comp); - } - - - private void init(Context ctx) { - Log.i(tag, "init()..."); - context = ctx; - File optimizedDexPath = ctx.getDir("plugsout", Context.MODE_PRIVATE); - if (!optimizedDexPath.exists()) { - optimizedDexPath.mkdirs(); - } - dexOutputPath = optimizedDexPath.getAbsolutePath(); - dexInternalStoragePath = context - .getDir("plugins", Context.MODE_PRIVATE); - dexInternalStoragePath.mkdirs(); - // change ClassLoader - try { - Object mPackageInfo = ReflectionUtils.getFieldValue(ctx, - "mBase.mPackageInfo", true); - frameworkClassLoader = new FrameworkClassLoader( - ctx.getClassLoader()); - // set Application's classLoader to FrameworkClassLoader - ReflectionUtils.setFieldValue(mPackageInfo, "mClassLoader", - frameworkClassLoader, true); - } catch (Exception e) { - e.printStackTrace(); - } - hasInit = true; - } - - private void checkInit() { - if (!hasInit) { - throw new IllegalStateException("PluginManager has not init!"); - } - } - - public PlugInfo getPluginById(String pluginId) { - if (pluginId == null) { - return null; - } - return pluginIdToInfoMap.get(pluginId); - } - - public PlugInfo getPluginByPackageName(String packageName) { - return pluginPkgToInfoMap.get(packageName); - } - - public Collection getPlugins() { - return pluginIdToInfoMap.values(); - } - - public void uninstallPluginById(String pluginId) { - uninstallPlugin(pluginId, true); - } - - public void uninstallPluginByPkg(String pkg) { - uninstallPlugin(pkg, false); - } - - private void uninstallPlugin(String k, boolean isId) { - checkInit(); - PlugInfo pl = isId ? removePlugById(k) : removePlugByPkg(k); - if (pl == null) { - return; - } - if (context instanceof Application) { - if (android.os.Build.VERSION.SDK_INT >= 14) { - try { - Application.class - .getMethod( - "unregisterComponentCallbacks", - Class.forName("android.content.ComponentCallbacks")) - .invoke(context, pl.getApplication()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - private PlugInfo removePlugById(String pluginId) { - PlugInfo pl = null; - synchronized (this) { - pl = pluginIdToInfoMap.remove(pluginId); - if (pl == null) { - return null; - } - pluginPkgToInfoMap.remove(pl.getPackageName()); - } - return pl; - } - - private PlugInfo removePlugByPkg(String pkg) { - PlugInfo pl = null; - synchronized (this) { - pl = pluginPkgToInfoMap.remove(pkg); - if (pl == null) { - return null; - } - pluginIdToInfoMap.remove(pl.getId()); - } - return pl; - } - - /** - * 加载指定插件或指定目录下的所有插件 - *

- * 都使用文件名作为Id - * - * @param pluginSrcDirFile - * - apk或apk目录 - * @return 插件集合 - * @throws Exception - */ - public Collection loadPlugin(final File pluginSrcDirFile) - throws Exception { - checkInit(); - if (pluginSrcDirFile == null || !pluginSrcDirFile.exists()) { - Log.e(tag, "invalidate plugin file or Directory :" - + pluginSrcDirFile); - return null; - } - if (pluginSrcDirFile.isFile()) { - // 如果是文件则尝试加载单个插件,暂不检查文件类型,除apk外,以后可能支持加载其他类型文件,如jar - PlugInfo one = loadPluginWithId(pluginSrcDirFile, null, null); - return Collections.singletonList(one); - } - // clear all first - synchronized (this) { - pluginPkgToInfoMap.clear(); - pluginIdToInfoMap.clear(); - } - File[] pluginApks = pluginSrcDirFile.listFiles(this); - if (pluginApks == null || pluginApks.length < 1) { - throw new FileNotFoundException("could not find plugins in:" - + pluginSrcDirFile); - } - for (File pluginApk : pluginApks) { - PlugInfo plugInfo = buildPlugInfo(pluginApk, null, null); - if (plugInfo != null) { - savePluginToMap(plugInfo); - } - } - return pluginIdToInfoMap.values(); - } - - private synchronized void savePluginToMap(PlugInfo plugInfo) { - pluginPkgToInfoMap.put(plugInfo.getPackageName(), plugInfo); - pluginIdToInfoMap.put(plugInfo.getId(), plugInfo); - } - - // /** - // * 单独加载一个apk
- // * 使用文件名作为插件id
- // * 目标文件也是与源文件同名 - // * - // * @param pluginApk - // * @return - // * @throws Exception - // */ - // public PlugInfo loadPlugin(File pluginApk) throws Exception { - // return loadPluginWithId(pluginApk, null, null); - // } - - /** - * 单独加载一个apk - * - * @param pluginApk - * @param pluginId - * - 如果参数为null,则使用文件名作为插件id - * @return - * @throws Exception - */ - public PlugInfo loadPluginWithId(File pluginApk, String pluginId) - throws Exception { - return loadPluginWithId(pluginApk, pluginId, null); - } - - public PlugInfo loadPluginWithId(File pluginApk, String pluginId, - String targetFileName) throws Exception { - checkInit(); - PlugInfo plugInfo = buildPlugInfo(pluginApk, pluginId, targetFileName); - if (plugInfo != null) { - savePluginToMap(plugInfo); - } - return plugInfo; - } - - private PlugInfo buildPlugInfo(File pluginApk, String pluginId, - String targetFileName) throws Exception { - PlugInfo info = new PlugInfo(); - info.setId(pluginId == null ? pluginApk.getName() : pluginId); - - File privateFile = new File(dexInternalStoragePath, - targetFileName == null ? pluginApk.getName() : targetFileName); - - info.setFilePath(privateFile.getAbsolutePath()); - - if (!pluginApk.getAbsolutePath().equals(privateFile.getAbsolutePath())) { - copyApkToPrivatePath(pluginApk, privateFile); - } - String dexPath = privateFile.getAbsolutePath(); - PluginManifestUtil.setManifestInfo(context, dexPath, info); - - PluginClassLoader loader = new PluginClassLoader(dexPath, - dexOutputPath, frameworkClassLoader, info); - info.setClassLoader(loader); - - try { - AssetManager am = (AssetManager) AssetManager.class.newInstance(); - am.getClass().getMethod("addAssetPath", String.class) - .invoke(am, dexPath); - info.setAssetManager(am); - Resources ctxres = context.getResources(); - Resources res = new Resources(am, ctxres.getDisplayMetrics(), - ctxres.getConfiguration()); - info.setResources(res); - } catch (Exception e) { - e.printStackTrace(); - } - if (actFrom != null) { - initPluginApplication(info, actFrom, true); - } - // createPluginActivityProxyDexes(info); - Log.i(tag, "buildPlugInfo: " + info); - return info; - } - - // private void createPluginActivityProxyDexes(PlugInfo plugin) { - // { - // ActInfo act = plugin.getApplicationInfo().getMainActivity(); - // if (act != null) { - // ActivityOverider.createProxyDex(plugin, act.name, false); - // } - // } - // if (plugin.getApplicationInfo().getOtherActivities() != null) { - // for (ActInfo act : plugin.getApplicationInfo().getOtherActivities()) - // { - // ActivityOverider.createProxyDex(plugin, act.name, false); - // } - // } - // } - void initPluginApplication(final PlugInfo info, Activity actFrom) - throws Exception { - initPluginApplication(info, actFrom, false); - } - - private void initPluginApplication(final PlugInfo plugin, Activity actFrom, boolean onLoad) throws Exception { - if (!onLoad && plugin.getApplication() != null) { - return; - } - final String className = plugin.getPackageInfo().applicationInfo.name; - if (className == null) { - if (onLoad) { - return; - } - Application application = new Application(); - setApplicationBase(plugin, application); - return; - } - Log.d(tag, plugin.getId() + ", ApplicationClassName = " + className); - - Runnable setApplicationTask = new Runnable() { - public void run() { - ClassLoader loader = plugin.getClassLoader(); - try { - Class applicationClass = loader.loadClass(className); - Application application = (Application) applicationClass - .newInstance(); - setApplicationBase(plugin, application); - // invoke plugin application's onCreate() - application.onCreate(); - } catch (Throwable e) { - Log.e(tag, Log.getStackTraceString(e)); - } - } - }; - // create Application instance for plugin - if (actFrom == null) { - if(onLoad) - return; - setApplicationTask.run(); - }else{ - actFrom.runOnUiThread(setApplicationTask); - } - } - - private void setApplicationBase(PlugInfo plugin, Application application) - throws Exception { - - synchronized (plugin) { - if (plugin.getApplication() != null) { - // set plugin's Application only once - return; - } - plugin.setApplication(application); - // - PluginContextWrapper ctxWrapper = new PluginContextWrapper(context, - plugin); - plugin.appWrapper = ctxWrapper; - // attach - Method attachMethod = android.app.Application.class.getDeclaredMethod( - "attach", Context.class); - attachMethod.setAccessible(true); - attachMethod.invoke(application, ctxWrapper); - if (context instanceof Application) { - if (android.os.Build.VERSION.SDK_INT >= 14) { - Application.class.getMethod("registerComponentCallbacks", - Class.forName("android.content.ComponentCallbacks")) - .invoke(context, application); - } - } - - } - } - - private void copyApkToPrivatePath(File pluginApk, File f) { - // if (f.exists() && pluginApk.length() == f.length()) { - // // 这里只是简单的判断如果两个文件长度相同则不拷贝,严格的做应该比较签名如 md5\sha-1 - // return; - // } - FileUtil.copyFile(pluginApk, f); - } - - File getDexInternalStoragePath() { - return dexInternalStoragePath; - } - - Context getContext() { - return context; - } - - public PluginActivityLifeCycleCallback getPluginActivityLifeCycleCallback() { - return pluginActivityLifeCycleCallback; - } - - public void setPluginActivityLifeCycleCallback( - PluginActivityLifeCycleCallback pluginActivityLifeCycleCallback) { - this.pluginActivityLifeCycleCallback = pluginActivityLifeCycleCallback; - } - - FrameworkClassLoader getFrameworkClassLoader() { - return frameworkClassLoader; - } - - @Override - public boolean accept(File pathname) { - if (pathname.isDirectory()) { - return false; - } - String fname = pathname.getName(); - return fname.endsWith(".apk"); - } + private static final String tag = "plugmgr"; + + private static final PluginManager instance = new PluginManager(); + private Context context; + + private final Map pluginIdToInfoMap = new ConcurrentHashMap(); + private final Map pluginPkgToInfoMap = new ConcurrentHashMap(); + private PluginActivityLifeCycleCallback pluginActivityLifeCycleCallback; + + private String dexOutputPath; // DEX输出路径(包内存储) + private File dexInternalStoragePath; + private CJClassLoader classLoader; + + // 定义两个原子变量来保存状态 + private volatile boolean hasInit = false; // 是否已经初始化 + private volatile Activity appAty; // 宿主Activity实例 + + private PluginManager() {} + + public static PluginManager getInstance(Context context) { + if (instance.hasInit || context == null) { + if (instance.appAty == null && context instanceof Activity) { + instance.appAty = (Activity) context; + } + return instance; + } else { + Context ctx = context; + if (context instanceof Activity) { + instance.appAty = (Activity) context; + ctx = ((Activity) context).getApplication(); + } else if (context instanceof Service) { + ctx = ((Service) context).getApplication(); + } else if (context instanceof Application) { + ctx = context; + } else { + ctx = context.getApplicationContext(); + } + synchronized (PluginManager.class) { + instance.init(ctx); + } + return instance; + } + } + + /* package */static PluginManager getInstance() { + return instance; + } + + /** + * 初始化CJClassLoader,替换Application中的classloader + * + * @author kymjs + */ + private void init(Context cxt) { + context = cxt; + + File optimizedDexPath = cxt.getDir("dexPath", Context.MODE_PRIVATE); + if (!optimizedDexPath.exists()) { + optimizedDexPath.mkdirs(); + } + dexOutputPath = optimizedDexPath.getAbsolutePath(); + + dexInternalStoragePath = context + .getDir("plugins", Context.MODE_PRIVATE); + dexInternalStoragePath.mkdirs(); + + try { + Object mPackageInfo = ReflectionUtils.getFieldValue(cxt, + "mBase.mPackageInfo", true); + classLoader = new CJClassLoader(cxt.getClassLoader()); + // 反射修改Application的classloader + ReflectionUtils.setFieldValue(mPackageInfo, "mClassLoader", + classLoader, true); + } catch (Exception e) { + e.printStackTrace(); + } + hasInit = true; + } + + public boolean startMainActivity(Context context, String pkgOrId) { + PlugInfo plug = getPlugActivityInfo(context, pkgOrId); + if (classLoader == null) { + Log.e(tag, "startMainActivity: frameworkClassLoader == null!"); + return false; + } + if (plug.getMainActivity() == null) { + Log.e(tag, "startMainActivity: plug.getMainActivity() == null!"); + return false; + } + if (plug.getMainActivity().activityInfo == null) { + Log.e(tag, + "startMainActivity: plug.getMainActivity().activityInfo == null!"); + return false; + } + String className = classLoader.newActivityClassName(plug.getId(), + plug.getMainActivity().activityInfo.name); + context.startActivity(new Intent().setComponent(new ComponentName( + context, className))); + return true; + } + + public void startActivity(Context context, Intent intent) { + performStartActivity(context, intent); + context.startActivity(intent); + } + + public void startActivityForResult(Activity activity, Intent intent, + int requestCode) { + performStartActivity(context, intent); + activity.startActivityForResult(intent, requestCode); + } + + /** + * + * @param context + * @param plugIdOrPkg + * @return + */ + private PlugInfo getPlugActivityInfo(Context context, String plugIdOrPkg) { + PlugInfo plug = null; + plug = getPluginByPackageName(plugIdOrPkg); + if (plug == null) { + plug = getPluginById(plugIdOrPkg); + } + if (plug == null) { + throw new IllegalArgumentException("plug not found by:" + + plugIdOrPkg); + } + return plug; + } + + private void performStartActivity(Context context, Intent intent) { + checkInit(); + + String plugIdOrPkg; + String actName; + ComponentName origComp = intent.getComponent(); + if (origComp != null) { + plugIdOrPkg = origComp.getPackageName(); + actName = origComp.getClassName(); + } else { + throw new IllegalArgumentException( + "plug intent must set the ComponentName!"); + } + PlugInfo plug = getPlugActivityInfo(context, plugIdOrPkg); + String className = classLoader.newActivityClassName(plug.getId(), + actName); + Log.i(tag, "performStartActivity: " + actName); + ComponentName comp = new ComponentName(context, className); + intent.setAction(null); + intent.setComponent(comp); + } + + private void checkInit() { + if (!hasInit) { + throw new IllegalStateException("PluginManager has not init!"); + } + } + + public PlugInfo getPluginById(String pluginId) { + if (pluginId == null) { + return null; + } + return pluginIdToInfoMap.get(pluginId); + } + + public PlugInfo getPluginByPackageName(String packageName) { + return pluginPkgToInfoMap.get(packageName); + } + + public Collection getPlugins() { + return pluginIdToInfoMap.values(); + } + + public void uninstallPluginById(String pluginId) { + uninstallPlugin(pluginId, true); + } + + public void uninstallPluginByPkg(String pkg) { + uninstallPlugin(pkg, false); + } + + private void uninstallPlugin(String k, boolean isId) { + checkInit(); + PlugInfo pl = isId ? removePlugById(k) : removePlugByPkg(k); + if (pl == null) { + return; + } + if (context instanceof Application) { + if (android.os.Build.VERSION.SDK_INT >= 14) { + try { + Application.class + .getMethod( + "unregisterComponentCallbacks", + Class.forName("android.content.ComponentCallbacks")) + .invoke(context, pl.getApplication()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + private PlugInfo removePlugById(String pluginId) { + PlugInfo pl = null; + synchronized (this) { + pl = pluginIdToInfoMap.remove(pluginId); + if (pl == null) { + return null; + } + pluginPkgToInfoMap.remove(pl.getPackageName()); + } + return pl; + } + + private PlugInfo removePlugByPkg(String pkg) { + PlugInfo pl = null; + synchronized (this) { + pl = pluginPkgToInfoMap.remove(pkg); + if (pl == null) { + return null; + } + pluginIdToInfoMap.remove(pl.getId()); + } + return pl; + } + + /** + * 加载指定插件或指定目录下的所有插件 + *

+ * 都使用文件名作为Id + * + * @param pluginSrcDirFile + * - apk或apk目录 + * @return 插件集合 + * @throws Exception + */ + public Collection loadPlugin(final File pluginSrcDirFile) + throws Exception { + checkInit(); + if (pluginSrcDirFile == null || !pluginSrcDirFile.exists()) { + Log.e(tag, "invalidate plugin file or Directory :" + + pluginSrcDirFile); + return null; + } + if (pluginSrcDirFile.isFile()) { + // 如果是文件则尝试加载单个插件,暂不检查文件类型,除apk外,以后可能支持加载其他类型文件,如jar + PlugInfo one = loadPluginWithId(pluginSrcDirFile, null, null); + return Collections.singletonList(one); + } + // clear all first + synchronized (this) { + pluginPkgToInfoMap.clear(); + pluginIdToInfoMap.clear(); + } + File[] pluginApks = pluginSrcDirFile.listFiles(this); + if (pluginApks == null || pluginApks.length < 1) { + throw new FileNotFoundException("could not find plugins in:" + + pluginSrcDirFile); + } + for (File pluginApk : pluginApks) { + PlugInfo plugInfo = buildPlugInfo(pluginApk, null, null); + if (plugInfo != null) { + savePluginToMap(plugInfo); + } + } + return pluginIdToInfoMap.values(); + } + + private synchronized void savePluginToMap(PlugInfo plugInfo) { + pluginPkgToInfoMap.put(plugInfo.getPackageName(), plugInfo); + pluginIdToInfoMap.put(plugInfo.getId(), plugInfo); + } + + // /** + // * 单独加载一个apk
+ // * 使用文件名作为插件id
+ // * 目标文件也是与源文件同名 + // * + // * @param pluginApk + // * @return + // * @throws Exception + // */ + // public PlugInfo loadPlugin(File pluginApk) throws Exception { + // return loadPluginWithId(pluginApk, null, null); + // } + + /** + * 单独加载一个apk + * + * @param pluginApk + * @param pluginId + * - 如果参数为null,则使用文件名作为插件id + * @return + * @throws Exception + */ + public PlugInfo loadPluginWithId(File pluginApk, String pluginId) + throws Exception { + return loadPluginWithId(pluginApk, pluginId, null); + } + + public PlugInfo loadPluginWithId(File pluginApk, String pluginId, + String targetFileName) throws Exception { + checkInit(); + PlugInfo plugInfo = buildPlugInfo(pluginApk, pluginId, targetFileName); + if (plugInfo != null) { + savePluginToMap(plugInfo); + } + return plugInfo; + } + + private PlugInfo buildPlugInfo(File pluginApk, String pluginId, + String targetFileName) throws Exception { + PlugInfo info = new PlugInfo(); + info.setId(pluginId == null ? pluginApk.getName() : pluginId); + + File privateFile = new File(dexInternalStoragePath, + targetFileName == null ? pluginApk.getName() : targetFileName); + + info.setFilePath(privateFile.getAbsolutePath()); + + if (!pluginApk.getAbsolutePath().equals(privateFile.getAbsolutePath())) { + copyApkToPrivatePath(pluginApk, privateFile); + } + String dexPath = privateFile.getAbsolutePath(); + PluginManifestUtil.setManifestInfo(context, dexPath, info); + + PluginClassLoader loader = new PluginClassLoader(dexPath, + dexOutputPath, classLoader, info); + info.setClassLoader(loader); + + try { + AssetManager am = AssetManager.class.newInstance(); + am.getClass().getMethod("addAssetPath", String.class) + .invoke(am, dexPath); + info.setAssetManager(am); + Resources ctxres = context.getResources(); + Resources res = new Resources(am, ctxres.getDisplayMetrics(), + ctxres.getConfiguration()); + info.setResources(res); + } catch (Exception e) { + e.printStackTrace(); + } + if (appAty != null) { + initPluginApplication(info, appAty, true); + } + // createPluginActivityProxyDexes(info); + Log.i(tag, "buildPlugInfo: " + info); + return info; + } + + // private void createPluginActivityProxyDexes(PlugInfo plugin) { + // { + // ActInfo act = plugin.getApplicationInfo().getMainActivity(); + // if (act != null) { + // ActivityOverider.createProxyDex(plugin, act.name, false); + // } + // } + // if (plugin.getApplicationInfo().getOtherActivities() != null) { + // for (ActInfo act : plugin.getApplicationInfo().getOtherActivities()) + // { + // ActivityOverider.createProxyDex(plugin, act.name, false); + // } + // } + // } + void initPluginApplication(final PlugInfo info, Activity actFrom) + throws Exception { + initPluginApplication(info, actFrom, false); + } + + private void initPluginApplication(final PlugInfo plugin, Activity actFrom, + boolean onLoad) throws Exception { + if (!onLoad && plugin.getApplication() != null) { + return; + } + final String className = plugin.getPackageInfo().applicationInfo.name; + if (className == null) { + if (onLoad) { + return; + } + Application application = new Application(); + setApplicationBase(plugin, application); + return; + } + Log.d(tag, plugin.getId() + ", ApplicationClassName = " + className); + + Runnable setApplicationTask = new Runnable() { + @Override + public void run() { + ClassLoader loader = plugin.getClassLoader(); + try { + Class applicationClass = loader.loadClass(className); + Application application = (Application) applicationClass + .newInstance(); + setApplicationBase(plugin, application); + // invoke plugin application's onCreate() + application.onCreate(); + } catch (Throwable e) { + Log.e(tag, Log.getStackTraceString(e)); + } + } + }; + // create Application instance for plugin + if (actFrom == null) { + if (onLoad) + return; + setApplicationTask.run(); + } else { + actFrom.runOnUiThread(setApplicationTask); + } + } + + private void setApplicationBase(PlugInfo plugin, Application application) + throws Exception { + + synchronized (plugin) { + if (plugin.getApplication() != null) { + // set plugin's Application only once + return; + } + plugin.setApplication(application); + // + PluginContextWrapper ctxWrapper = new PluginContextWrapper(context, + plugin); + plugin.appWrapper = ctxWrapper; + // attach + Method attachMethod = android.app.Application.class + .getDeclaredMethod("attach", Context.class); + attachMethod.setAccessible(true); + attachMethod.invoke(application, ctxWrapper); + if (context instanceof Application) { + if (android.os.Build.VERSION.SDK_INT >= 14) { + Application.class + .getMethod( + "registerComponentCallbacks", + Class.forName("android.content.ComponentCallbacks")) + .invoke(context, application); + } + } + + } + } + + private void copyApkToPrivatePath(File pluginApk, File f) { + // if (f.exists() && pluginApk.length() == f.length()) { + // // 这里只是简单的判断如果两个文件长度相同则不拷贝,严格的做应该比较签名如 md5\sha-1 + // return; + // } + FileUtil.copyFile(pluginApk, f); + } + + File getDexInternalStoragePath() { + return dexInternalStoragePath; + } + + Context getContext() { + return context; + } + + public PluginActivityLifeCycleCallback getPluginActivityLifeCycleCallback() { + return pluginActivityLifeCycleCallback; + } + + public void setPluginActivityLifeCycleCallback( + PluginActivityLifeCycleCallback pluginActivityLifeCycleCallback) { + this.pluginActivityLifeCycleCallback = pluginActivityLifeCycleCallback; + } + + CJClassLoader getFrameworkClassLoader() { + return classLoader; + } + + @Override + public boolean accept(File pathname) { + if (pathname.isDirectory()) { + return false; + } + String fname = pathname.getName(); + return fname.endsWith(".apk"); + } }