我们如何在java中获取android:apk的描述?

时间:2013-02-10 15:37:28

标签: java android xml-parsing apk

我有一个问题来获取android:apk的描述:我必须在java中获取它,以便在加载apk时将此信息放入我的数据库中。我使用aapt -l a x.apk |来编码引用grep android:description。 在解压缩的apk中,这个引用是在manifest.xml中访问值为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使用ProcessBuilder。获取信息的最简单方法是什么?我使用sax来解析xml。

1 个答案:

答案 0 :(得分:0)

你所要求的并不完全清楚。如果您只想从资源中读取字符串值,则可以执行此操作。

String s = getResources().getString(R.string.videochatservice_description);