Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
Booster
提交
8e4b1ec9
B
Booster
项目概览
DiDi
/
Booster
通知
31
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Booster
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8e4b1ec9
编写于
6月 28, 2020
作者:
N
neighbWang
提交者:
Johnson Lee
6月 29, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add PreferenceManager.getDefaultSharedPreferences() method
上级
2d0e1c4b
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
16 addition
and
2 deletion
+16
-2
booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java
...idiglobal/booster/instrument/ShadowSharedPreferences.java
+8
-0
booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt
...ansform/sharedpreferences/SharedPreferencesTransformer.kt
+8
-2
未找到文件。
booster-android-instrument-shared-preferences/src/main/java/com/didiglobal/booster/instrument/ShadowSharedPreferences.java
浏览文件 @
8e4b1ec9
...
...
@@ -15,6 +15,14 @@ public class ShadowSharedPreferences {
return
BoosterSharedPreferences
.
getSharedPreferences
(
context
,
name
);
}
public
static
SharedPreferences
getDefaultSharedPreferences
(
Context
context
)
{
return
BoosterSharedPreferences
.
getSharedPreferences
(
context
,
getDefaultSharedPreferencesName
(
context
));
}
private
static
String
getDefaultSharedPreferencesName
(
Context
context
)
{
return
context
.
getPackageName
()
+
"_preferences"
;
}
public
static
SharedPreferences
getPreferences
(
final
Activity
activity
,
final
int
mode
)
{
return
getSharedPreferences
(
activity
.
getApplicationContext
(),
activity
.
getLocalClassName
(),
mode
);
}
...
...
booster-transform-shared-preferences/src/main/kotlin/com/didiglobal/booster/transform/sharedpreferences/SharedPreferencesTransformer.kt
浏览文件 @
8e4b1ec9
...
...
@@ -48,13 +48,14 @@ class SharedPreferencesTransformer : ClassTransformer {
klass
.
methods
.
forEach
{
method
->
method
.
instructions
.
iterator
().
asIterable
().
filter
{
it
.
opcode
==
INVOKEVIRTUAL
it
.
opcode
==
INVOKEVIRTUAL
||
it
.
opcode
==
INVOKESTATIC
}.
map
{
it
as
MethodInsnNode
}.
forEach
{
mapOf
(
CONTEXT_GET_SHARED_PREFERENCES
to
SHADOW_CONTEXT_GET_SHARED_PREFERENCES
,
ACTIVITY_GET_PREFERENCES
to
SHADOW_ACTIVITY_GET_PREFERENCES
ACTIVITY_GET_PREFERENCES
to
SHADOW_ACTIVITY_GET_PREFERENCES
,
PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES
to
SHADOW_PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES
).
forEach
{
(
original
,
shadow
)
->
if
(
it
.
opcode
==
original
.
opcode
&&
it
.
name
==
original
.
name
&&
it
.
desc
==
original
.
desc
&&
context
.
klassPool
.
get
(
original
.
owner
).
isAssignableFrom
(
it
.
owner
))
{
logger
.
println
(
" * ${shadow.owner}${shadow.name}${shadow.desc} => ${it.owner}.${it.name}${it.desc}: ${klass.name}.${method.name}${method.desc}"
)
...
...
@@ -72,6 +73,7 @@ class SharedPreferencesTransformer : ClassTransformer {
private
const
val
ACTIVITY
=
"android/app/Activity"
private
const
val
CONTEXT
=
"android/content/Context"
private
const
val
PREFERENCE_MANAGER
=
"android.preference/PreferenceManager"
private
const
val
SHARED_PREFERENCES
=
"android/content/SharedPreferences"
private
const
val
SUPPORT_MULTIDEX_PACKAGE_PREFIX
=
"android/support/multidex/"
private
const
val
BOOSTER_DIRECTORY_PREFIX
=
"com/didiglobal/booster/instrument"
...
...
@@ -79,5 +81,9 @@ private const val SHADOW_SHARED_PREFERENCES = "$BOOSTER_DIRECTORY_PREFIX/ShadowS
private
val
CONTEXT_GET_SHARED_PREFERENCES
=
MethodInsnNode
(
INVOKEVIRTUAL
,
CONTEXT
,
"getSharedPreferences"
,
"(Ljava/lang/String;I)L$SHARED_PREFERENCES;"
)
private
val
SHADOW_CONTEXT_GET_SHARED_PREFERENCES
=
MethodInsnNode
(
INVOKESTATIC
,
SHADOW_SHARED_PREFERENCES
,
"getSharedPreferences"
,
"(L$CONTEXT;Ljava/lang/String;I)L$SHARED_PREFERENCES;"
)
private
val
PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES
=
MethodInsnNode
(
INVOKESTATIC
,
PREFERENCE_MANAGER
,
"getDefaultSharedPreferences"
,
"(L$CONTEXT;)L$SHARED_PREFERENCES;"
)
private
val
SHADOW_PREFERENCE_MANAGER_GET_DEFAULT_SHARED_PREFERENCES
=
MethodInsnNode
(
INVOKESTATIC
,
SHADOW_SHARED_PREFERENCES
,
"getDefaultSharedPreferences"
,
"(L$CONTEXT;)L$SHARED_PREFERENCES;"
)
private
val
ACTIVITY_GET_PREFERENCES
=
MethodInsnNode
(
INVOKEVIRTUAL
,
ACTIVITY
,
"getPreferences"
,
"(I)L$SHARED_PREFERENCES;"
)
private
val
SHADOW_ACTIVITY_GET_PREFERENCES
=
MethodInsnNode
(
INVOKESTATIC
,
SHADOW_SHARED_PREFERENCES
,
"getPreferences"
,
"(L$ACTIVITY;I)L$SHARED_PREFERENCES;"
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录