MCPcopy Create free account

hub / github.com/baidu/titan-hotfix / functions

Functions1,521 in github.com/baidu/titan-hotfix

↓ 1 callersMethodaddBuddyObjField
添加BuddyObj字段,用于全量热更新时保存Buddy实例 @param classVisitor @param classNode
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:387
↓ 1 callersMethodaddFieldHolder
(DexClassNode dcn)
titan-core/src/main/java/com/baidu/titan/core/instrument/FieldSupportTransformation.java:45
↓ 1 callersMethodaddInitMethod
(DexNamedProtoNode initMethod)
titan-core/src/main/java/com/baidu/titan/core/patch/full/generator/BuddyGenerator.java:68
↓ 1 callersMethodaddInitMethods
添加与bottomLibraryClass相同的<init>方法,以便Patch中可以根据MethodId选择性的调用任何<init>方法。 @param genesisClassVisitor @param gensisClass
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:246
↓ 1 callersMethodaddInstanceInitMethod
(DexMethodNode methodNode)
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/InterceptorProcessor.java:235
↓ 1 callersMethodaddInterceptorField
(DexClassNode dcn)
titan-core/src/main/java/com/baidu/titan/core/instrument/AddInterceptorFieldTransformation.java:46
↓ 1 callersMethodaddNormalMethod
添加一个普通方法 @param methodNode
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/InterceptorProcessor.java:164
↓ 1 callersMethodaddStaticInitMethod
(DexMethodNode methodNode)
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/InterceptorProcessor.java:231
↓ 1 callersMethodaddVirtualMethods
添加从Object到bottomLibrary的所有虚方法,以便子类重写的时候,可以实现拦截机制 @param genesisClassVisitor @param gensisClass
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:140
↓ 1 callersMethodanalyze
()
titan-core/src/test/java/com/baidu/titan/core/tests/CodeAnalyzerTest.java:50
↓ 1 callersMethodanalyze
()
titan-core/src/main/java/com/baidu/titan/core/instrument/InitMethodAnalyzer.java:68
↓ 1 callersMethodapply
应用补丁
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/loader/BaseLoader.java:31
↓ 1 callersMethodapplyInTime
just-in-time策略下应用补丁
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/loader/BaseLoader.java:36
↓ 1 callersMethodareEqual
(DexType first, DexType second)
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedClassDiffMarker.java:162
↓ 1 callersMethodareEqual
(T first, T second)
titan-core/src/main/java/com/baidu/titan/core/util/ListDiffer.java:135
↓ 1 callersMethodbuildBuddyClass
@param bottomLibraryClassNode 最下层的系统类 @param topProgramClass 最顶层的程序类 @param factory @param componentBuddyHolder @param componentType 组件类型 @param appPo
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchBuddyClassHierarchy.java:328
↓ 1 callersMethodbuildFirstHalfPreInitCodeNode
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/full/InitMethodSplitter.java:148
↓ 1 callersMethodbuildFirstHalfUnInitCodeNode
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/LightInitMethodSplitter.java:168
↓ 1 callersMethodbuildGenesisCallSuperSelectorMethod
(DexClassNode genesisClassNode, DexClassNode superDcn,
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:688
↓ 1 callersMethodbuildGenesisClass
(DexClassNode bottomLibraryClassNode, DexClassNode topProgramClass,
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:933
↓ 1 callersMethodbuildGenesisClassIfNeed
构建Genesis Class Node
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:335
↓ 1 callersMethodbuildInitBodyMethod
@param orgCodeNode @param spliteInfo @return
titan-core/src/main/java/com/baidu/titan/core/patch/full/InitMethodSplitter.java:598
↓ 1 callersMethodbuildInitBodyMethod
@param orgCodeNode @param spliteInfo @return
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/LightInitMethodSplitter.java:597
↓ 1 callersMethodbuildPreInitMethod
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/full/InitMethodSplitter.java:241
↓ 1 callersMethodbuildSecondHalfInitBodyCodeNode
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/full/InitMethodSplitter.java:534
↓ 1 callersMethodbuildSecondHalfInitBodyCodeNode
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/LightInitMethodSplitter.java:529
↓ 1 callersMethodbuildUnInitMethod
(DexCodeNode orgCodeNode, SpliteInfo spliteInfo)
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/LightInitMethodSplitter.java:227
↓ 1 callersMethodbuildWormHoleMethod
按照JVM Spec,子类的构造函数必须调用直接父类的构造函数。意味着所有的<init>方法初始化必须是按照继承关系逐级的, 不能出现越级初始化。 虫洞 <init>方法存在的目的就是为了遵守JVM Spec,对于继承链上的中间类走虫洞快速方法。 @param dcn @param facto
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:886
↓ 1 callersMethodcanCompare
(T first, T second)
titan-core/src/main/java/com/baidu/titan/core/util/ListDiffer.java:133
↓ 1 callersMethodcheckByteOrderLittleEndian
(ByteBuffer buffer)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/verifier/ApkSignatureSchemeV2Verifier.java:1020
↓ 1 callersMethodcheckIsMainProcess
判断是否是主进程名, processName有可能包含换行等符 @param processName @param mainProcessName @return 如果是返回true
titan-sample/app/src/main/java/com/baidu/titan/sample/TitanSampleApplication.java:133
↓ 1 callersMethodcheckLazyInitable
有interceptor情况下检查是否可以懒加载
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/InterceptorProcessor.java:388
↓ 1 callersMethodcheckLazyInitableIfNoItor
在无interceptor情况下检查是否可以懒加载
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/InterceptorProcessor.java:417
↓ 1 callersMethodcheckRewrite
检查是否需要重写类 @param diffContext DiffContext @param outerDcn 需要检查的类 @return
titan-core/src/main/java/com/baidu/titan/core/patch/light/plum/ClassRewriteChecker.java:48
↓ 1 callersMethodclassPoolVisitEnd
()
titan-core/src/main/java/com/baidu/titan/core/pool/ApplicationDexPool.java:123
↓ 1 callersMethodclearDiffFlags
清空diff flags @param dcn dexclassnode
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedMethodDiffMarker.java:167
↓ 1 callersMethodclearDiffFlags
清空diff flags @param dcn dexclassnode
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/RemovedMethodDiffMarker.java:112
↓ 1 callersMethodclearDiffFlags
清空diff flags @param dcn dexclassnode
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/AddedMethodDiffMarker.java:143
↓ 1 callersMethodcollectVirtualMethodHierarchy
自顶而下的收集所有可重写的虚方法(!package && !final) @param dcn @return
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:404
↓ 1 callersMethodcollectVirtualMethodHierarchy
(DexClassNode dcn)
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchBuddyClassHierarchy.java:452
↓ 1 callersMethodcompareClassAnnotations
(DexClassNode oldClass, DexClassNode newClass)
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedClassDiffMarker.java:173
↓ 1 callersMethodcompareContentDigestAlgorithm
(int digestAlgorithm1, int digestAlgorithm2)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/verifier/ApkSignatureSchemeV2Verifier.java:701
↓ 1 callersMethodcompareFile
比较两个文本内容是否一致
titan-core/src/test/java/com/baidu/titan/core/tests/TestUtil.java:102
↓ 1 callersMethodcompareInterfaces
(DexClassNode oldClass, DexClassNode newClass)
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedClassDiffMarker.java:151
↓ 1 callersMethodcompareSignatureAlgorithm
(int sigAlgorithm1, int sigAlgorithm2)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/verifier/ApkSignatureSchemeV2Verifier.java:695
↓ 1 callersMethodcompareSuperType
(DexClassNode oldClass, DexClassNode newClass)
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedClassDiffMarker.java:144
↓ 1 callersMethodcompatGetBinder
()
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/sandbox/JobIntentService.java:147
↓ 1 callersMethodcomplete
()
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/sandbox/JobIntentService.java:359
↓ 1 callersMethodcomputeContentDigests
( int[] digestAlgorithms, DataSource[] contents)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/verifier/ApkSignatureSchemeV2Verifier.java:517
↓ 1 callersMethodcreateFromJson
(String json)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchMetaInfo.java:121
↓ 1 callersMethodcreateFromJson
从json数据中读取数据并创建PatchClassInfo实例 @param json 包含类信息的json数据 @return PatchClassInfo实例
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchClassInfo.java:55
↓ 1 callersMethodcreateFromPatch
从patch文件中读取数据并创建PatchClassInfo实例 @param patchFile patch文件 @return PatchClassInfo实例
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchClassInfo.java:85
↓ 1 callersMethodcreatePatchInstallInfo
(String hash)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchManagerService.java:441
↓ 1 callersMethoddeleteFile
(File file)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchInstallInfo.java:242
↓ 1 callersMethoddexOpt
do dex opt @param installInfo @return
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchManagerService.java:341
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ClassPoolDiffMarker.java:83
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/AddedClassDiffMarker.java:44
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/AddedFieldDiffMarker.java:40
↓ 1 callersMethoddiff
(DexClassNode newClassNode, DexClassNode oldClassNode, D
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/FieldDiffMarker.java:43
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedMethodDiffMarker.java:105
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/RemovedMethodDiffMarker.java:54
↓ 1 callersMethoddiff
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/AddedMethodDiffMarker.java:73
↓ 1 callersMethoddiff
对Outer class进行对比,递归对比其中的匿名内部类 @param diffContext DiffContext @param oldOuterDcn old outer class dcn @param newOuterDcn new outer class dcn
titan-core/src/main/java/com/baidu/titan/core/patch/light/plum/AnonymousClassDiffMarker.java:75
↓ 1 callersMethoddiffBisect
Find the 'middle snake' of a diff, split the problem in two and return the recursively constructed diff. See Myers 1986 paper: An O(ND) Difference Alg
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:372
↓ 1 callersMethoddiffCharsToLines
Rehydrate the text in a diff from a string of line hashes to real lines of text. @param diffs List of Diff objects. @param lineArray List of uniq
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:588
↓ 1 callersMethoddiffCleanupEfficiency
Reduce the number of edits by eliminating operationally trivial equalities. @param diffs LinkedList of Diff objects.
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:1077
↓ 1 callersMethoddiffCompute
Find the differences between two texts. Assumes that the texts do not have any common prefix or suffix. @param text1 Old string to be diffed. @
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:224
↓ 1 callersMethoddiffHalfMatch
Do the two texts share a substring which is at least half the length of the longer text? This speedup can produce non-minimal diffs. @param text1 Fir
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:697
↓ 1 callersMethoddiffLevenshtein
Compute the Levenshtein distance; the number of inserted, deleted or substituted characters. @param diffs List of Diff objects. @return Number of cha
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:1441
↓ 1 callersMethoddiffLineMode
Do a quick line-level diff on both strings, then rediff the parts for greater accuracy. This speedup can produce non-minimal diffs. @param text1 O
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:299
↓ 1 callersMethoddiffLinesToChars
Split two texts into a list of strings. Reduce the texts to a string of hashes where each Unicode character represents one line. @param text1 First
titan-core/src/test/java/com/baidu/titan/core/tests/DiffMatchPatch.java:521
↓ 1 callersMethoddiffQuickCompare
(DexClassNode newClassNode, DexClassNode oldClassNode,
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedMethodDiffMarker.java:233
↓ 1 callersMethoddiffQuickCompare
(DexClassNode oldClass, DexClassNode newClass, boolean ignoreDebugInf
titan-core/src/main/java/com/baidu/titan/core/patch/light/diff/ChangedClassDiffMarker.java:193
↓ 1 callersMethoddoAnalyze
(ApplicationDexPool appDexPool)
titan-core/src/test/java/com/baidu/titan/core/tests/CodeAnalyzerTest.java:116
↓ 1 callersMethoddoGenerate
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/LightAddedClassGenerator.java:93
↓ 1 callersMethoddoGenerate
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/LightPatchLoaderGenerator.java:71
↓ 1 callersMethoddoGenerate
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/LightClassClinitInterceptorGenerator.java:78
↓ 1 callersMethoddoInstall
安装titanpatch。patch包请提前push到/sdcard/titanpatch/patch.apk
titan-sample/app/src/main/java/com/baidu/titan/sample/MainActivity.java:66
↓ 1 callersMethoddoInstall
安装titanpatch。patch包请提前push到/sdcard/titanpatch/patch.apk
titan-core/src/test/smali/lightpatch/t013-anonymous/info/old/MainActivity.java:113
↓ 1 callersMethoddoInstrument
(MultiDexFileBytes multiDexFileBytes, File outBaseDir, File manifestFile)
titan-core/src/test/java/com/baidu/titan/core/tests/TitanInstrumentFromProject.java:48
↓ 1 callersMethoddoInstrument
(File apkFile, File outBaseDir, File manifestFile)
titan-core/src/test/java/com/baidu/titan/core/tests/InstrumentV2Test.java:79
↓ 1 callersMethoddoPatch
()
titan-core/src/main/java/com/baidu/titan/core/patch/full/FullPatch.java:73
↓ 1 callersMethoddoSplit
()
titan-core/src/main/java/com/baidu/titan/core/patch/full/BuddyInitMethodSplitter.java:79
↓ 1 callersMethoddoSplit
()
titan-core/src/main/java/com/baidu/titan/core/patch/full/InitMethodSplitter.java:121
↓ 1 callersMethoddoSplit
()
titan-core/src/main/java/com/baidu/titan/core/patch/light/generator/changed/LightInitMethodSplitter.java:142
↓ 1 callersMethoddoStat
(ApplicationDexPool appDexPool, HashMap<String, Integer> statMap)
titan-core/src/test/java/com/baidu/titan/core/tests/SpecialMethodStatTest.java:143
↓ 1 callersMethoddoStopCurrentWork
()
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/sandbox/JobIntentService.java:623
↓ 1 callersMethodenqueueWork
(Intent work)
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/sandbox/JobIntentService.java:131
↓ 1 callersMethodequals
(Object o)
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchGenesisClassHierarchy.java:211
↓ 1 callersMethodextraceDexsIfNeeded
如果满足条件,则将dex提取出来INSTALL_STATE_PATCH_VERSION_DOWNGRADE @param installInfo 安装信息 @param patchFile patch文件 @return 操作是否成功
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchManagerService.java:270
↓ 1 callersMethodextractDexs
extract dexs @param patchZip @param patchDir @return
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/pm/PatchManagerService.java:374
↓ 1 callersMethodfeedIntoMessageDigests
Feeds the specified region of this source's data into the provided digests. Each digest instance gets the same data. @param offset offset of the regi
titan-sdk/pm/src/main/java/com/baidu/titan/sdk/verifier/ApkSignatureSchemeV2Verifier.java:1055
↓ 1 callersMethodfillAppPool
()
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchGenesisClassHierarchy.java:241
↓ 1 callersMethodfillAppPool
()
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchBuddyClassHierarchy.java:277
↓ 1 callersMethodfillApplicationPool
(ApplicationDexPool appPool, Argument argument)
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentMain.java:189
↓ 1 callersMethodfillComponentClass
(DexClassNode componentClass, int componentType,
titan-core/src/main/java/com/baidu/titan/core/patch/full/PatchBuddyClassHierarchy.java:365
↓ 1 callersMethodfillComponentInfoFromApk
(File apktoolDir, File apkPath, Map<String, List<String>>
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentMain.java:261
↓ 1 callersMethodfillLbraryClass
(ApplicationDexPool appPool)
titan-core/src/test/java/com/baidu/titan/core/tests/SpecialMethodStatTest.java:105
↓ 1 callersMethodfillLbraryClass
(ApplicationDexPool appPool)
titan-core/src/test/java/com/baidu/titan/core/tests/CodeAnalyzerTest.java:78
↓ 1 callersMethodfilterOverridableVirtualMethod
(DexMethodNode dmn)
titan-core/src/main/java/com/baidu/titan/core/instrument/InstrumentGenesisClassHierarchy.java:448
← previousnext →301–400 of 1,521, ranked by callers