feat: 全面 Android API → Python 兼容层 (android_compat.py)

新增 android_compat.py (3552行):
全面映射 Android Java API 到 Python 跨平台实现,覆盖 16 个领域、108 个 API 对象:

android.content: Intent(20+actions), Context, ContentResolver, ContentValues,
                 BroadcastReceiver, IntentFilter, SharedPreferences
android.net: Uri (parse/fromFile/withAppendedPath)
android.os: Build, Environment, PowerManager, BatteryManager, VibrationEffect,
             Bundle, Handler, Looper, ParcelFileDescriptor
android.graphics: Bitmap (PIL后端), Canvas, Color, Paint, Rect, Matrix,
                  Typeface, BitmapFactory
android.graphics.pdf: PdfRenderer (PyMuPDF/pdf2image后端)
android.app: ActivityManager, PackageManager(包查询), NotificationManager,
             AlarmManager, DownloadManager
android.view: View, TextView, EditText, Button, ImageView, ScrollView,
              ViewGroup, LinearLayout, FrameLayout, RelativeLayout
android.view.accessibility: AccessibilityNodeInfo (UI树+pyautogui点击),
                            AccessibilityPage, UINode
android.hardware: SensorManager, CameraManager, BiometricPrompt
android.location: LocationManager(模拟GPS), Geocoder, Location(Haversine)
android.media: MediaPlayer, AudioRecord, AudioManager
android.telephony: TelephonyManager
android.provider: Settings, MediaStore, CalendarContract, ContactsContract
android.net.wifi: WifiManager, WifiInfo + ConnectivityManager
android.os.storage: StorageManager, StorageVolume
java.io: File, FileInputStream/OutputStream, BufferedReader, BufferedWriter

Java桥接: Java.type() 支持直调真实Java类(jpype)或返回存根
系统服务: 10+ 模拟服务 (ActivityManager/PowerManager/etc)
路径映射: /sdcard → ~/Android-compat/sdcard
UI自动化: UINode + pyautogui 桌面降级
绘图: Bitmap/Canvas → PIL/Pillow 后端

集成到 operit_runtime.py: 自动检测并注入108个Android API到脚本命名空间

测试结果:
  - 语法检查: android_compat.py ✅, operit_runtime.py ✅
  - 路径映射: /sdcard → /root/Android-compat/sdcard ✅
  - Intent/Uri/Context/Bitmap/File 全API ✅
  - 脚本加载: 38脚本 280工具 ✅
This commit is contained in:
shuiyu1123 committed 2026-06-23 12:43:38 +00:00
1 parent dc77dfd304
commit b245af9063
2 files changed
+3593

No files matched your search

+3552
View File
File diff suppressed because it is too large. Load diff