0

我在获取 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。

4

1 回答 1

0

你在问什么并不完全清楚。如果您只想从资源中读取字符串值,则可以这样做。

String s = getResources().getString(R.string.videochatservice_description);
于 2013-02-11T16:45:45.473 回答