Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
VirtualAPK
提交
a0fda07c
V
VirtualAPK
项目概览
门心叼龙
/
VirtualAPK
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VirtualAPK
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a0fda07c
编写于
7月 09, 2018
作者:
S
superq_sky
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactored creating the instance of plugin manager.
上级
a76beb3b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
51 addition
and
3 deletion
+51
-3
CoreLibrary/src/main/java/com/didi/virtualapk/PluginManager.java
...rary/src/main/java/com/didi/virtualapk/PluginManager.java
+27
-3
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-0
app/src/main/java/com/didi/virtualapk/DemoFactory.java
app/src/main/java/com/didi/virtualapk/DemoFactory.java
+21
-0
未找到文件。
CoreLibrary/src/main/java/com/didi/virtualapk/PluginManager.java
浏览文件 @
a0fda07c
...
...
@@ -26,6 +26,7 @@ import android.content.ComponentName;
import
android.content.Context
;
import
android.content.IContentProvider
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.content.pm.ProviderInfo
;
import
android.content.pm.ResolveInfo
;
import
android.net.Uri
;
...
...
@@ -77,15 +78,38 @@ public class PluginManager {
public
static
PluginManager
getInstance
(
Context
base
)
{
if
(
sInstance
==
null
)
{
synchronized
(
PluginManager
.
class
)
{
if
(
sInstance
==
null
)
sInstance
=
new
PluginManager
(
base
);
if
(
sInstance
==
null
)
{
sInstance
=
createInstance
(
base
);
}
}
}
return
sInstance
;
}
private
static
PluginManager
createInstance
(
Context
context
)
{
try
{
String
factoryClass
=
context
.
getPackageManager
()
.
getApplicationInfo
(
context
.
getPackageName
(),
PackageManager
.
GET_META_DATA
)
.
metaData
.
getString
(
"VA_FACTORY"
);
if
(
factoryClass
==
null
)
{
return
new
PluginManager
(
context
);
}
PluginManager
pluginManager
=
Reflector
.
on
(
factoryClass
).
method
(
"create"
,
Context
.
class
).
call
(
context
);
if
(
pluginManager
!=
null
)
{
Log
.
d
(
TAG
,
"Created a instance of "
+
pluginManager
.
getClass
());
return
pluginManager
;
}
}
catch
(
Exception
e
)
{
Log
.
w
(
TAG
,
"Created the instance error!"
,
e
);
}
return
new
PluginManager
(
context
);
}
pr
ivate
PluginManager
(
Context
context
)
{
pr
otected
PluginManager
(
Context
context
)
{
Context
app
=
context
.
getApplicationContext
();
if
(
app
==
null
)
{
this
.
mContext
=
context
;
...
...
app/src/main/AndroidManifest.xml
浏览文件 @
a0fda07c
...
...
@@ -36,6 +36,9 @@
android:label=
"@string/app_name"
android:supportsRtl=
"true"
android:theme=
"@style/HostTheme"
>
<!-- test -->
<meta-data
android:name=
"VA_FACTORY"
android:value=
"com.didi.virtualapk.DemoFactory"
/>
<activity
android:name=
".MainActivity"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/com/didi/virtualapk/DemoFactory.java
0 → 100644
浏览文件 @
a0fda07c
package
com.didi.virtualapk
;
import
android.content.Context
;
import
android.support.annotation.Keep
;
import
android.util.Log
;
/**
* Created by qiaopu on 2018/7/5.
*/
@Keep
public
class
DemoFactory
{
public
static
PluginManager
create
(
Context
context
)
{
return
new
PluginManager
(
context
)
{
@Override
public
void
init
()
{
super
.
init
();
Log
.
e
(
TAG
,
"example"
);
}
};
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录