apk の android:description を取得するのに問題があります。apk をロードするときに、この情報をデータベースに入れるために Java で取得する必要があります。aapt -la x.apk | を使用して、参照をエンコードします。grep android: 説明。解凍された 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 を解析します。