Deep Implementation Analysis
run 20260610-002429 · evidence: Manifest + XAPK metadata + apktool smali + bounded native strings + earliest version diff. Activity buckets use class-tail matching to reduce package-name false positives.
总览
| Target | Type | Activities | SDK | Primary lesson |
|---|
| ai-art-magic-photo-generator | flutter | 11 | admob, firebase | Flutter 包的 Android 层很薄,核心业务更可能在 Dart AOT/libapp.so 与 flutter_assets;Java/smali 主要承担 plugin、广告、推送、权限桥接。 |
| cleaner-guru-cleaning-app | thin-native | 6 | appsflyer, facebook, firebase, revenuecat | Activity 数量少的工具包更像薄壳 + SDK/云配置驱动,适合学习 onboarding/paywall/权限请求/订阅链路,而不是学习复杂原生架构。 |
| pdf-reader-pdf-viewer | activity-heavy | 146 | admob, facebook, firebase | Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。 |
| opera-ai-browser-with-vpn | activity-heavy | 84 | admob, appsflyer, facebook, firebase, revenuecat | Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。 |
| ai-photo-lab-generate-and-edit | flutter | 11 | admob, firebase | Flutter 包的 Android 层很薄,核心业务更可能在 Dart AOT/libapp.so 与 flutter_assets;Java/smali 主要承担 plugin、广告、推送、权限桥接。 |
| refoto-ai-photo-studio | activity-heavy | 104 | admob, appsflyer, firebase, revenuecat | Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。 |
类型判断
- Flutter 类:优先看 flutter_assets、libapp.so 字符串、plugin/MethodChannel 桥接,Java Activity 不是主业务代码。
- Activity-heavy 类:Manifest Activity 命名是功能地图,先分业务 Activity 和 SDK Activity,再追 smali/JADX。
- 早期版本:对已经多轮迭代的工具类最有价值;如果 APKPure 只有 1 个版本,早期包无法降低分析难度。
AI Art Magic - Photo Generator ai-art-magic-photo-generator
com.aiart.picture.generator.pro · 1.1.9 · flutter · SDK: admob, firebase
Permissions19
Activities11
Services15
Receivers14
Endpoints4
实现学习结论
- Flutter 包的 Android 层很薄,核心业务更可能在 Dart AOT/libapp.so 与 flutter_assets;Java/smali 主要承担 plugin、广告、推送、权限桥接。
- flutter_assets 有 338 个文件,适合从 asset 目录和 native strings 还原页面/素材/配置结构,而不是先追 Java Activity。
- 订阅/支付通常作为 Flutter plugin 或 RevenueCat/Google Billing 桥接接入,MVP 可先抽成 BillingFacade + PaywallConfig。
- 最早版本和 latest 差异不大,说明首版已经包含核心商业化/功能壳,早期包更多用于确认最小闭环而不是降低分析难度。
Activity 聚类
| Bucket | Count | Samples |
|---|
| other | 6 | com.google.android.gms.ads.NotificationHandlerActivitycom.google.android.gms.ads.OutOfContextTestingActivitycom.google.android.gms.common.api.GoogleApiActivitycom.google.android.play.core.common.PlayCoreDialogWrapperActivity
|
| paywall_subscription | 2 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2
|
| ads_mediation | 2 | com.facebook.ads.AudienceNetworkActivitycom.google.android.gms.ads.AdActivity
|
| startup_onboarding | 1 | io.flutter.plugins.urllauncher.WebViewActivity
|
| browser_vpn | 1 | io.flutter.plugins.urllauncher.WebViewActivity
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 9367 files / 45445 lines | smali/W/h.1.smalismali/W/D.smalismali/W/a.1.smalismali/W/t.1.smali
|
| ads | 1926 files / 23862 lines | smali/K3/b.smalismali/K3/a.smalismali_classes3/A4/S0.smalismali/K3/c.smali
|
| pdf_core | 649 files / 1446 lines | smali/p3.1/a.smalismali/t0.1/y.smalismali/f4/g.smalismali/p4/d.smali
|
| browser_vpn_core | 254 files / 1681 lines | smali_classes3/j7.1/D.smalismali/o2.1/D.smalismali_classes3/j7.1/F.smalismali_classes3/j7.1/Y.smali
|
| analytics_attribution | 215 files / 9503 lines | smali/j1.1/a.smalismali/M1/g.smalismali/S2/q.smalismali_classes2/j$/time/p.smali
|
| notification_push | 119 files / 864 lines | smali/i3.1/a.smalismali/w2.1/a.smalismali/S2/o.smalismali/o2.1/D.smali
|
| billing_subscription | 61 files / 412 lines | smali/s4/e.smalismali/F2/D.smalismali/F2/y.smalismali/F2/b.1.smali
|
| remote_config | 30 files / 88 lines | smali/x2.1/l.smalismali/A3/k.smalismali_classes3/j7.1/G.smalismali_classes3/U6/d.smali
|
| onboarding_paywall_words | 22 files / 57 lines | smali/W2/c.smalismali/com/pairip/licensecheck/LicenseActivity$ActivityType.smalismali/com/pairip/licensecheck/LicenseActivity.smalismali/com/pairip/licensecheck/LicenseClient.smali
|
| flutter_bridge | 17 files / 52 lines | smali/A1/G.smalismali/x2.1/c.smalismali/x2.1/l.smalismali/s4/e.smali
|
Flutter / Native
flutter_assets: 338; top dirs: [['assets', 315], ['packages', 16], ['shaders', 2], ['NOTICES.Z', 1], ['NativeAssetsManifest.json', 1], ['FontManifest.json', 1], ['AssetManifest.bin', 1], ['fonts', 1]]
scanned libs: config.armeabi_v7a/lib/armeabi-v7a/libflutter.so, config.armeabi_v7a/lib/armeabi-v7a/libapp.so
channelspackage:flutter/src/dart_plugin_registrant.dartPlatformChannel ScheduleResultio/flutter/embedding/engine/renderer/SurfaceTextureWrapperio/flutter/view/TextureRegistry$ImageConsumer../../../flutter/third_party/skia/src/codec/SkJpegUtility.cpp../../../flutter/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp
domain strings/68///40/60/:0t1/49r:/W/J0/J/:0l1/20
早期版本 baseline
| Version | 1.0.3 -> 1.1.9 |
|---|
| Delta | permissions +1, activities -3, services +0, receivers -2, endpoints -1, native libs +1 |
|---|
| SDK | + none / - none |
|---|
| Diff | version diff |
|---|
Cleaner cleaner-guru-cleaning-app
com.cleanerguru.app · 1.0.0 · thin-native · SDK: appsflyer, facebook, firebase, revenuecat
Permissions21
Activities6
Services2
Receivers2
Endpoints1
实现学习结论
- Activity 数量少的工具包更像薄壳 + SDK/云配置驱动,适合学习 onboarding/paywall/权限请求/订阅链路,而不是学习复杂原生架构。
- Cleaner Guru 只有少量 Activity,但权限和 RevenueCat/Appsflyer/Facebook 信号齐,学习价值在权限承诺、订阅包装和归因闭环。
Activity 聚类
| Bucket | Count | Samples |
|---|
| other | 4 | com.cleanerguru.app.MainActivitycom.google.android.gms.common.api.GoogleApiActivitycom.google.android.play.core.common.PlayCoreDialogWrapperActivitycom.pairip.licensecheck.LicenseActivity
|
| paywall_subscription | 2 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 17914 files / 188136 lines | smali/com/appsflyer/share/ShareInviteHelper.smalismali/com/appsflyer/share/LinkGenerator$2.smalismali/com/appsflyer/share/LinkGenerator$ResponseListener.smalismali/com/appsflyer/share/CrossPromotionHelper.smali
|
| pdf_core | 11563 files / 46015 lines | smali/com/appsflyer/share/ShareInviteHelper.smalismali/com/appsflyer/share/LinkGenerator$2.smalismali/com/appsflyer/share/CrossPromotionHelper.smalismali/com/appsflyer/share/LinkGenerator.smali
|
| analytics_attribution | 781 files / 18112 lines | smali/com/appsflyer/share/ShareInviteHelper.smalismali/com/appsflyer/share/LinkGenerator$2.smalismali/com/appsflyer/share/LinkGenerator$ResponseListener.smalismali/com/appsflyer/share/CrossPromotionHelper.smali
|
| billing_subscription | 588 files / 5755 lines | smali/com/appsflyer/reactnative/RNAppsFlyerConstants.smalismali/com/appsflyer/AFInAppEventType.smalismali/com/appsflyer/AFPurchaseType.smalismali/com/android/billingclient/api/zzd.smali
|
| browser_vpn_core | 573 files / 10349 lines | smali/com/appsflyer/AppsFlyerProperties.smalismali/com/appsflyer/deeplink/DeepLink.smalismali/androidx/media/session/MediaButtonReceiver.smalismali/androidx/media/session/MediaButtonReceiver$MediaButtonConnectionCallback.smali
|
| notification_push | 483 files / 6594 lines | smali/com/appsflyer/FirebaseMessagingServiceListener.smalismali/com/appsflyer/reactnative/RNAppsFlyerModule.smalismali/com/appsflyer/R$id.smalismali/com/appsflyer/AFInAppEventType.smali
|
| onboarding_paywall_words | 108 files / 818 lines | smali/com/appsflyer/reactnative/RNAppsFlyerModule.smalismali/com/appsflyer/AFInAppEventParameterName.smalismali/com/appsflyer/AppsFlyerLib.smalismali/com/appsflyer/AFInAppEventType.smali
|
| ads | 9 files / 39 lines | smali/com/appsflyer/MediationNetwork.smalismali/com/appsflyer/internal/AFe1eSDK.smalismali/androidx/constraintlayout/motion/widget/MotionController.smalismali_classes3/com/google/android/exoplayer2/ui/PlayerView.smali
|
| remote_config | 5 files / 6 lines | smali/com/appsflyer/internal/AFf1mSDK.smalismali/com/appsflyer/internal/AFf1lSDK.smalismali/com/appsflyer/internal/AFa1tSDK$$ExternalSyntheticLambda4.smalismali/com/appsflyer/internal/AFf1oSDK.smali
|
早期版本 baseline
no earlier baseline in this runAll PDF Reader pdf-reader-pdf-viewer
com.ezt.pdfreader.pdfviewer · 3.3.0 · activity-heavy · SDK: admob, facebook, firebase
Permissions26
Activities146
Services18
Receivers21
Endpoints42
实现学习结论
- Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。
- 广告 mediation Activity 占据明显空间,功能实现要把业务页面和 SDK 页面分开看,避免误把 SDK 复杂度当产品复杂度。
- 最早版本明显更小,适合用作初始功能 baseline;latest 增量主要反映商业化、SDK、兼容和功能扩张。
- PDF 类工具的可复刻模块边界很清晰:文档入口/权限 -> 文件列表 -> 阅读器 -> 编辑/扫描/转换 -> paywall/广告;Activity 命名是最直接的功能路线图。
Activity 聚类
| Bucket | Count | Samples |
|---|
| pdf_document | 55 | com.compdfkit.tools.annotation.pdfproperties.pdfsignature.CAddSignatureActivitycom.compdfkit.tools.annotation.pdfproperties.pdfstamp.CAddCustomStampActivitycom.compdfkit.tools.common.pdf.CPDFDocumentActivitycom.compdfkit.tools.common.pdf.CPDFDocumentSeparateActivity
|
| ads_mediation | 40 | com.applovin.adview.AppLovinFullscreenActivitycom.applovin.adview.AppLovinFullscreenImmersiveActivitycom.applovin.creative.MaxCreativeDebuggerActivitycom.applovin.creative.MaxCreativeDebuggerDisplayedAdActivity
|
| other | 32 | com.compdfkit.tools.ai.activities.translate.AITranslateActivitycom.ezt.ebook.EbookViewerActivitycom.ezt.ebook.OutlineActivitycom.ezt.lib.officeviewer.OfficeViewerActivity
|
| paywall_subscription | 8 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2com.ezt.pdfreader.pdfviewer.PremiumActivitycom.ezt.pdfreader.pdfviewer.v4.activities.V4PurchaseActivity
|
| photo_ai_editor | 7 | com.ezt.pdfreader.pdfviewer.ImageToPDFActivitycom.ezt.pdfreader.pdfviewer.imagepicker.ImagePickerActivitycom.ezt.pdfreader.pdfviewer.v5.activities.PhotoEditorWBActivitycom.github.dhaval2404.imagepicker.ImagePickerActivity
|
| startup_onboarding | 5 | com.ezt.pdfreader.pdfviewer.LanguageActivitycom.ezt.pdfreader.pdfviewer.SplashScreencom.ezt.pdfreader.pdfviewer.cloud.activities.CloudIntroActivitycom.ezt.pdfreader.pdfviewer.v4.activities.V4LanguageActivity
|
| browser_vpn | 5 | com.applovin.sdk.AppLovinWebViewActivitycom.facebook.CustomTabActivitycom.facebook.CustomTabMainActivitycom.fyber.inneractive.sdk.activities.InneractiveInternalBrowserActivity
|
| account_settings | 1 | com.applovin.mediation.MaxDebuggerTcfConsentStatusesListActivity
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 37239 files / 279661 lines | smali/W/a.smalismali/r2/d.smalismali/r2/f.smalismali/r2/b.smali
|
| pdf_core | 16851 files / 288161 lines | smali/x1.1/a.smalismali/n0.1/d.smalismali/x1.1/c.smalismali/b1.1/a.smali
|
| ads | 4330 files / 120289 lines | smali/B2/a.smalismali/p0.1/a.smalismali/Y0/e.smalismali/D0/c.smali
|
| browser_vpn_core | 1618 files / 22250 lines | smali/b1.1/a.smalismali/h.smalismali/a1.1/d.smalismali/H1/B.smali
|
| analytics_attribution | 953 files / 14336 lines | smali_classes6/ge.1/a.smalismali_classes6/lc.1/f.smalismali_classes3/Wf/c.smalismali_classes3/Wf/j.smali
|
| onboarding_paywall_words | 376 files / 8486 lines | smali/a.1/a.smalismali_classes6/mf.1/a.smalismali/f2/b.smalismali/h2.1/q.smali
|
| notification_push | 253 files / 1879 lines | smali/Y/a.smalismali/B2/a.smalismali_classes3/p8.1/d.smalismali/androidx/media/AudioAttributesImplBase.smali
|
| billing_subscription | 187 files / 994 lines | smali/a.1/a.smalismali/h2.1/q.smalismali/v1.1/c.smalismali/g1.1/d.smali
|
| remote_config | 40 files / 132 lines | smali/g1.1/b.smalismali_classes7/com/fasterxml/jackson/core/JsonFactory.smalismali_classes7/com/fasterxml/jackson/core/JsonParser.smalismali_classes7/com/fasterxml/jackson/core/TSFBuilder.smali
|
早期版本 baseline
| Version | 2.0.0 -> 3.3.0 |
|---|
| Delta | permissions +3, activities +39, services +1, receivers +1, endpoints +22, native libs +11 |
|---|
| SDK | + none / - none |
|---|
| Diff | version diff |
|---|
Opera opera-ai-browser-with-vpn
com.opera.browser · 94.0.4936.86741 · activity-heavy · SDK: admob, appsflyer, facebook, firebase, revenuecat
Permissions37
Activities84
Services89
Receivers30
Endpoints72
实现学习结论
- Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。
- 广告 mediation Activity 占据明显空间,功能实现要把业务页面和 SDK 页面分开看,避免误把 SDK 复杂度当产品复杂度。
- Opera 属于头部复杂参考,适合学习 trust copy、权限/服务拆分、浏览器/VPN 入口,不适合当 MVP 代码结构模板。
Activity 聚类
| Bucket | Count | Samples |
|---|
| other | 29 | com.facebook.FacebookActivitycom.google.android.gms.ads.NotificationHandlerActivitycom.google.android.gms.ads.OutOfContextTestingActivitycom.google.android.gms.common.api.GoogleApiActivity
|
| ads_mediation | 20 | com.bytedance.sdk.openadsdk.activity.TTAdActivitycom.bytedance.sdk.openadsdk.activity.TTAppOpenAdActivitycom.bytedance.sdk.openadsdk.activity.TTCeilingLandingPageActivitycom.bytedance.sdk.openadsdk.activity.TTDelegateActivity
|
| startup_onboarding | 15 | com.opera.InternetLauncherAcom.opera.Launcher1com.opera.Launcher10com.opera.Launcher11
|
| account_settings | 7 | com.google.android.gms.auth.api.signin.internal.SignInHubActivitycom.opera.android.account.auth.DeleteProfileAuthActivitycom.opera.android.account.auth.EditProfileAuthActivitycom.opera.android.account.auth.FinishAccountSetupAuthActivity
|
| browser_vpn | 5 | com.facebook.CustomTabActivitycom.facebook.CustomTabMainActivitycom.opera.android.BrowserActivitycom.opera.android.BrowserRestartActivity
|
| photo_ai_editor | 4 | com.google.android.tv.ads.controls.FallbackImageActivitycom.opera.android.account.auth.EditProfileAuthActivitycom.opera.android.snapshot.OfaImageEditorActivitycom.opera.hype.image.editor.ImageEditorActivity
|
| paywall_subscription | 3 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2com.opera.android.media.MediaPlayerActivity
|
| pdf_document | 2 | com.opera.android.qr.ScanQrCodeActivitycom.opera.android.shortcut.QrScannerShortcutWidgetActivity
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 33942 files / 144904 lines | smali/zvj$b.smalismali/tgo.smalismali/e3d.smalismali/d3.smali
|
| pdf_core | 15273 files / 33355 lines | smali/m7g.smalismali/d3.smalismali/ce9$a.smalismali/e3d.smali
|
| browser_vpn_core | 3934 files / 41316 lines | smali/u3h.smalismali/rh.smalismali/yr3.smalismali/cd.smali
|
| ads | 1110 files / 16845 lines | smali/ago.smalismali_classes8/yuh.smalismali_classes8/zkh.smalismali_classes8/rm5$c.smali
|
| analytics_attribution | 553 files / 15835 lines | smali/e3d.smalismali/zz7.smalismali/yhh.smalismali_classes8/sed.smali
|
| notification_push | 443 files / 3763 lines | smali_classes8/dn.smalismali_classes8/dn$c.smalismali_classes8/j5h.smalismali_classes8/j5h$b.smali
|
| onboarding_paywall_words | 277 files / 1079 lines | smali_classes4/rfg$c$a$a.smalismali/zia$a.smalismali/p06.smalismali/cbf.smali
|
| billing_subscription | 256 files / 1524 lines | smali/tgo.smalismali/gho.smalismali_classes5/cv9.smalismali_classes6/com/mbridge/msdk/dycreator/bus/Subscription.smali
|
| remote_config | 14 files / 20 lines | smali/com/appsflyer/internal/AFf1oSDK.smalismali/com/appsflyer/internal/AFf1qSDK.smalismali/com/appsflyer/internal/AFf1mSDK.smalismali/com/appsflyer/internal/AFf1lSDK.smali
|
早期版本 baseline
no earlier baseline in this runAI Photo Lab: Generate & Edit ai-photo-lab-generate-and-edit
com.photo.art.designer.studio · 1.0.1 · flutter · SDK: admob, firebase
Permissions18
Activities11
Services12
Receivers12
Endpoints5
实现学习结论
- Flutter 包的 Android 层很薄,核心业务更可能在 Dart AOT/libapp.so 与 flutter_assets;Java/smali 主要承担 plugin、广告、推送、权限桥接。
- flutter_assets 有 387 个文件,适合从 asset 目录和 native strings 还原页面/素材/配置结构,而不是先追 Java Activity。
- 订阅/支付通常作为 Flutter plugin 或 RevenueCat/Google Billing 桥接接入,MVP 可先抽成 BillingFacade + PaywallConfig。
Activity 聚类
| Bucket | Count | Samples |
|---|
| other | 6 | com.google.android.gms.ads.NotificationHandlerActivitycom.google.android.gms.ads.OutOfContextTestingActivitycom.google.android.gms.common.api.GoogleApiActivitycom.google.android.play.core.common.PlayCoreDialogWrapperActivity
|
| paywall_subscription | 2 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2
|
| ads_mediation | 2 | com.facebook.ads.AudienceNetworkActivitycom.google.android.gms.ads.AdActivity
|
| startup_onboarding | 1 | io.flutter.plugins.urllauncher.WebViewActivity
|
| browser_vpn | 1 | io.flutter.plugins.urllauncher.WebViewActivity
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 9137 files / 48230 lines | smali/W/h.1.smalismali/W/t.1.smalismali/W/F.smalismali/W/B.smali
|
| ads | 1924 files / 23423 lines | smali/d1.1/p.smalismali/g3.1/d.smalismali_classes2/t6.1/n.smalismali/Z3/b.smali
|
| pdf_core | 604 files / 1360 lines | smali/o2.1/g.smalismali/M0/c.smalismali/u3.1/a.smalismali/P4/d.smali
|
| analytics_attribution | 242 files / 9988 lines | smali/W/F.smalismali/W/b.1.smalismali/j2.1/b.smalismali/j2.1/a.smali
|
| browser_vpn_core | 242 files / 1502 lines | smali/C0/d.smalismali/s.1/U.smalismali_classes2/j6.1/n.smalismali/s.1/y0.smali
|
| billing_subscription | 59 files / 430 lines | smali/d1.1/p.smalismali/N1/k.smalismali/S4/j.smalismali/X0/o.smali
|
| notification_push | 54 files / 392 lines | smali/q0.1/d.smalismali/q0.1/f.smalismali/q0.1/g.smalismali/q0.1/e.smali
|
| remote_config | 30 files / 88 lines | smali/T/e.smalismali/N4/G0.smalismali/F/e0.1.smalismali/N4/k0.1.smali
|
| onboarding_paywall_words | 19 files / 51 lines | smali/T/e.smalismali/w3/c.smalismali/F/e0.1.smalismali_classes2/T5/S.smali
|
| flutter_bridge | 16 files / 48 lines | smali_classes2/j6.1/d.smalismali/l3.1/e.smalismali_classes2/j6.1/g.smalismali_classes2/j6.1/n.smali
|
Flutter / Native
flutter_assets: 387; top dirs: [['assets', 279], ['packages', 101], ['NOTICES.Z', 1], ['NativeAssetsManifest.json', 1], ['AssetManifest.json', 1], ['FontManifest.json', 1], ['AssetManifest.bin', 1], ['shaders', 1]]
scanned libs: config.armeabi_v7a/lib/armeabi-v7a/libflutter.so, config.armeabi_v7a/lib/armeabi-v7a/libapp.so, config.armeabi_v7a/lib/armeabi-v7a/libsurface_util_jni.so, config.armeabi_v7a/lib/armeabi-v7a/libimage_processing_util_jni.so
channelspackage:flutter/src/dart_plugin_registrant.dartPlatformChannel ScheduleResultio/flutter/embedding/engine/renderer/SurfaceTextureWrapperio/flutter/view/TextureRegistry$ImageConsumer../../../flutter/third_party/skia/src/codec/SkJpegUtility.cpp../../../flutter/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp
domain strings/68///40/60/:0t1/49r:/W/J0/J/:0l1/20
早期版本 baseline
no earlier baseline in this runRefoto refoto-ai-photo-studio
com.refoto.aiportrait · 1.1.0 · activity-heavy · SDK: admob, appsflyer, firebase, revenuecat
Permissions28
Activities104
Services16
Receivers15
Endpoints6
实现学习结论
- Activity-heavy 包把功能拆成大量原生页面/第三方 SDK Activity,入口和功能边界可优先从 Manifest Activity 命名聚类,而不是从反编译全局搜索开始。
- 广告 mediation Activity 占据明显空间,功能实现要把业务页面和 SDK 页面分开看,避免误把 SDK 复杂度当产品复杂度。
- 最早版本明显更小,适合用作初始功能 baseline;latest 增量主要反映商业化、SDK、兼容和功能扩张。
- AI Photo Studio 类原生包通常是模板/素材/上传处理/结果页/订阅的组合;重点看 assets/native libs/endpoint,而不是只看 Activity 数。
Activity 聚类
| Bucket | Count | Samples |
|---|
| other | 42 | com.facebook.FacebookActivitycom.fyber.inneractive.sdk.activities.InneractiveRichMediaVideoPlayerActivityCorecom.fyber.inneractive.sdk.activities.InternalStoreWebpageActivitycom.google.android.gms.ads.NotificationHandlerActivity
|
| ads_mediation | 33 | com.bytedance.sdk.openadsdk.activity.TTAdActivitycom.bytedance.sdk.openadsdk.activity.TTAppOpenAdActivitycom.bytedance.sdk.openadsdk.activity.TTCeilingLandingPageActivitycom.bytedance.sdk.openadsdk.activity.TTDelegateActivity
|
| photo_ai_editor | 10 | com.refoto.aiportrait.home.aiTools.highDefinition.HighDefinitionDownloadActivitycom.refoto.aiportrait.home.aiTools.highDefinition.HighDefinitionLoadingActivitycom.refoto.aiportrait.home.aiTools.highDefinition.HighDefinitionPictureCropActivitycom.refoto.aiportrait.home.aiTools.highDefinition.HighDefinitionResultActivity
|
| startup_onboarding | 9 | com.refoto.aiportrait.LauncherProxyActivitycom.refoto.aiportrait.home.lang.LanguageSelActivitycom.refoto.aiportrait.home.splash.LanguageSelectActivitycom.refoto.aiportrait.home.splash.PrivacyNewActivity
|
| browser_vpn | 9 | com.facebook.CustomTabActivitycom.facebook.CustomTabMainActivitycom.fyber.inneractive.sdk.activities.InneractiveInternalBrowserActivitycom.quvideo.xiaoying.vivaiap.payment.ProxyPayActivity
|
| share_export | 6 | com.refoto.aiportrait.home.aiTools.highDefinition.HighDefinitionDownloadActivitycom.refoto.aiportrait.home.aiTools.peopleRemove.PeopleRemoveDownloadActivitycom.refoto.aiportrait.home.template.view.ExportProActivitycom.refoto.aiportrait.home.template.view.TemplateGenerateDownloadActivity
|
| paywall_subscription | 4 | com.android.billingclient.api.ProxyBillingActivitycom.android.billingclient.api.ProxyBillingActivityV2com.quvideo.xiaoying.vivaiap.payment.ProxyPayActivitycom.refoto.aiportrait.home.template.view.ExportProActivity
|
| account_settings | 4 | com.refoto.aiportrait.home.settings.AboutAppActivitycom.refoto.aiportrait.home.settings.SettingsActivitycom.refoto.aiportrait.home.splash.PrivacyNewActivitycom.refoto.aiportrait.home.splash.PrivacyOldActivity
|
Smali 关键词证据
| Group | Evidence | Files |
|---|
| photo_ai_core | 53279 files / 350163 lines | smali/b/a.smalismali/e/b.smalismali/e/a.smalismali/e/c.smali
|
| pdf_core | 27797 files / 101459 lines | smali/com/prominent/middle/config/ConfigManager$needShowGuideFragment$2.smalismali/com/prominent/middle/config/ConfigManager.smalismali/com/prominent/middle/config/ConfigManager$load$1.smalismali_classes7/t7/d.smali
|
| ads | 3849 files / 58831 lines | smali_classes9/jf/a.smalismali_classes9/nf/a.smalismali_classes10/com/vungle/ads/internal/AdInternal$Companion$json$1.smalismali_classes10/com/vungle/ads/internal/session/UnclosedAdDetector.smali
|
| browser_vpn_core | 2937 files / 34899 lines | smali/com/prominent/middle/R$id.smalismali/android/support/v4/media/ParceledListSliceAdapterApi21.smalismali/android/support/v4/media/MediaBrowserCompat$CustomActionResultReceiver.smalismali/android/support/v4/media/MediaBrowserCompat$MediaBrowserImplBase$6.smali
|
| analytics_attribution | 1412 files / 25341 lines | smali_classes3/com/prominent/middle/mediasource/a.smalismali/androidx/media3/extractor/Ac4Util.smalismali/android/support/v4/media/session/MediaControllerCompat$MediaControllerImplBase.smalismali_classes3/com/prominent/middle/mediasource/a$a.smali
|
| onboarding_paywall_words | 1371 files / 9158 lines | smali_classes2/com/pairip/licensecheck/LicenseActivity.smalismali_classes2/com/pairip/licensecheck/LicenseClient.smalismali_classes6/xb/d.smalismali_classes2/com/pairip/licensecheck/LicenseActivity$ActivityType.smali
|
| notification_push | 1251 files / 11515 lines | smali_classes4/com/androidnetworking/R$string.smalismali_classes4/com/androidnetworking/R$style.smalismali_classes4/com/androidnetworking/R$layout.smalismali_classes4/com/androidnetworking/R$drawable.smali
|
| billing_subscription | 860 files / 9962 lines | smali_classes2/com/pairip/licensecheck/LicenseActivity.smalismali_classes2/com/pairip/licensecheck/LicenseClient.smalismali_classes2/com/pairip/licensecheck/LicenseActivity$ActivityType.smalismali_classes9/com/tiktok/appevents/base/EventName.smali
|
| remote_config | 127 files / 1927 lines | smali_classes8/ee/a.smalismali_classes8/ee/c.smalismali_classes8/com/quvideo/mobile/platform/route/c.smalismali_classes8/com/quvideo/mobile/platform/route/c$a.smali
|
| flutter_bridge | 3 files / 9 lines | smali_classes9/com/unity3d/ads/adplayer/WebViewAdPlayer.smalismali_classes9/com/unity3d/ads/adplayer/AdPlayer$Companion.smalismali_classes4/androidx/paging/PageFetcherSnapshot.smali
|
早期版本 baseline
| Version | 1.0.0 -> 1.1.0 |
|---|
| Delta | permissions +3, activities +57, services +2, receivers +2, endpoints +2, native libs +2 |
|---|
| SDK | + none / - none |
|---|
| Diff | version diff |
|---|