我在获取 apk 的 android:description 时遇到了问题:我必须在 java 中获取它,以便在加载 apk 时将此信息放入我的数据库中。我使用 aapt -la x.apk | 对参考进行了编码。grep 安卓:描述。在解压缩的 apk 中,此参考是 manifest.xml 中对 value-fr 的 strings.xml 的访问(例如 value-
java -jar \apktool.jar d \x.apk
例子 :
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="330" android:versionName="4.0.3-239410" package="com.google.android.talk"
xmlns:android="http://schemas.android.com/apk/res/android">
…
<application android:label="@string/app_label" android:icon="@mipmap/ic_launcher_google_talk" android:name="TalkApp" android:taskAffinity="android.task.googletalk" android:hardwareAccelerated="true">
…
<service android:name="com.google.android.videochat.VideoChatService" android:description="@string/videochatservice_description"> android:permission="com.google.android.talk.permission.VIDEO_CHAT_SERVICE">
</service>
…
</application>
</manifest>
然后在 res\values-fr\strings.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
…
<string name="videochatservice_description">"Talk Service."</string>
…
</resources>
我的目标是在 java 中获取字符串“Talk Service”。
到目前为止,我认为不使用 apktool 就不可能做我想做的事。如果有人有更快的解决方案,我会看看它。假设我们使用这个 apktool 命令:java -jar \apktool.jar d .apk using ProcessBuilder。获取信息的最简单方法是什么?我使用 sax 来解析 xml。