問題タブ [dex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - デデクサーを使用してこの逆アセンブル行を解釈する方法は?
以下は、Android マーケット アプリでdedexerinvoke-virtual
を使用して逆アセンブルされたスニップコードです。元の Java コードが何であるかわかりません。
invoke-virtual {v0},[Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;/clone ; clone()Ljava/lang/Object;
は[
配列であるはずですがclone
、タイプの配列の要素でメソッドを呼び出していcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType
ますか? では、なぜ;
クラス名とメソッド名の間にあるのclone
でしょうか? デクサー自体のバグ?
android - コマンドラインからのAndroidプロジェクトのコンパイルは遅い
私はOSXのコマンドラインから以下を使用して(かなり単純で、数百のLOCを持つわずか5つのファイル)アプリをコンパイルしています。
ant debug
できます。しかし、それはゆっくりと動作します:
BUILD SUCCESSFUL
Total time:
26 seconds
何故ですか?1つのJavaファイルの1行だけを変更しても、これだけの時間がかかります。この時間のほとんどはdex
ステージ(約20秒)で費やされます。これは、AFAIKがDalvikバイトコードを作成することです。しかし、Eclipseを使用してWindowsで同じプロジェクトに取り組んでいる私の友人は、自分のマシンでコンパイルするのに1、2秒しかかからないと言っています。このプロセスをスピードアップするために私にできることはありますか?
android - Android - dx トラブル処理 - コア クラス 2012、Android 4 アップデートの不適切な使用法または誤った使用法
アプリケーションをビルドしようとしているときに「不適切または誤ったコア クラスの使用法」というエラーを受け取ったとき、Stackoverflow を検索し、いくつかの提案に従って、ant と jarjar を使用してアプリケーションをビルドしました。
Ant ビルドは dx ステップで失敗し、以下に報告されたエラーが発生しました。
「強制できません」エラー (以下を参照) を修正する方法に関する提案を Web で検索しましたが、役立つものは何も見つかりませんでした。
ant ビルドの jarjar ステップが機能しているように見えたことに注意してください。bin/repackagedclasses.jar の Java ディレクトリの内容を確認したところ、それらは空で、すべての内容が名前が変更された同等のディレクトリ (/java) に転送されました。
私が従った (ant と jarjar を使用した) 提案は 2 年以上前のものであり、Android 2.x に適用されたことにも注意してください。Android 4 および関連するインフラストラクチャでは機能しない可能性があります (おそらく?)。
最後に 1 点。sdk/platform-tools の dx を次のように変更しました。
上記の変更の有無にかかわらず、ant ビルドまたは Eclipse ビルドに違いはありません。
android - コンパイル時にAndroidDexファイルからAWT参照を取り除く
私のAndroid
アプリで、私のbytecode makes illegal references to java.awt
、場合によっては。という警告が表示されruntime seems to replace invalid opcodes
ます。
DX
生成されたdexファイルにこれらの参照が含まれないように、これらの参照を以前に(コンパイル時などに)クリーンアップまたは置換するようにツールに指示するためにできることはありますか?
android - Android がリソースを動的に読み込む
アプリで JAR/APK をダウンロードするためにDexClassLoaderを使用しようとしています。アプリをモジュール化して、メイン アプリにまとめて出荷するのではなく、ユーザーが必要に応じて UI フローをダウンロードできるようにしたいと考えています。
実際のクラスの読み込みは正常に機能し、ホスト アクティビティに追加できるいくつかの UI コンポーネントを読み込むことができました。
私の問題は、リソース (文字列、ドローアブル、レイアウト) にホスト APK が付属していないため、ダウンロードしたパッケージにアクセスしたり、リソース (文字列、ドローアブル、レイアウト) を追加したりできないことです。ダウンロード可能な JAR/APK のリソースを動的にロードすることはできますか?
android - sdCard の jar ライブラリから Activity クラスを動的にロードして実際に使用することは可能ですか?
sdCardに1つの.jarファイルがあります(dxツールを使用して、通常の.jarをdexにコンパイルしました..そうしないと、Androidは実行時に文句を言います)
使用したいクラスは実際にはアクティビティであり、「使用」とはインフレを意味します!
A) このようにクラスをロードすると、ロードされたクラスは親クラスのパッケージを親パッケージとして持つことに気付きました (コードを実行するもの: 例: jar ライブラリ内のクラスの実際のパッケージ: "com .something" & my-app-package: "com.wonderfull" -> ロードされたクラスは "com.wonderfull.com.something" にあります :) ) -> 再テスト: ライブラリと同じように元のパッケージを保持します
B)「最良の」シナリオでは、次のエラーが発生します。
アクティビティ ComponentInfo{com.appno2/com.appno1.futureLib.LibActivity} をインスタンス化できません: java.lang.ClassNotFoundException: ローダー dalvik.system.PathClassLoader の com.appno1.futureLib.LibActivity[/data/app/com.appno2-1 .apk]
C) マニフェストに、Activity (動的にロードされるもの) を次のように配置しました。
アクティビティ Android:name="com.appno1.futureLib.LibActivity" Android:label="@string/app_name" > /アクティビティ>
タイトルからの質問を繰り返します:sdCardのjarライブラリからActivityクラスを動的にロードして実際に使用することは可能ですか?
「なぜこれが欲しいの?」の場合 -ただの骨董品!+ 概念として: ユーザーが有効なライセンスを入力した直後に、アプリの実際のコードを (何かの jar の形で) ダウンロードする可能性
更新:-このアイデアはフラグメントで機能します(インポートされるクラスがフラグメントであることを意味します)
現在の結論: - 外部の .jar (たとえば、sdCard 上、またはインターネットからダウンロードするなど) にラメ Java クラスまたは Android UI 関連のクラスを含めることが可能であり、必要に応じてそれらを動的にロードします。そうそう: あなたはこの方法でこの活動を行うことはできません :( .. おそらくサービスでさえありません..
詳細情報 #1:実行時に Android アプリケーションからライブラリを動的にロードすることは可能ですか?
詳細情報 #2: http://android-developers.blogspot.ro/2011/07/custom-class-loading-in-dalvik.html
URLClassLoaderについて: これは機能します (DalvikClassLoader - ClassNotFoundException && を使用せずに、明らかに: このようにロードされたアクティビティをインフレートすることはできません)
android - Android の dex コードの自動変換
Dex ファイルを変換/計測したい。変換の目標には、コード カバレッジの測定が含まれます。ソースファイルは利用できないことに注意してください。したがって、Dex のインストルメント化が唯一のオプションです。
目標を達成するためのツールを作成するための例として参照できる既存のコード ベースがあるかどうか疑問に思っています。
私は、Smali プロジェクトと、Smali 上に構築された他の多くのプロジェクトについて知っています。ただし、これらのプロジェクトはいずれも、私の目的に適した例ではありません。
smali コードまたは dexlib 表現を自動的に変換するコードを探しています。そこから smali が生成されます。後者のオプションは、smali を生成するオーバーヘッドを回避できるため、私の目的には適しています。
android - Dalvik 形式への変換に失敗しました: dex を実行できません: ジャンボ インデックスへの変換を処理できません
Eclipse で Android プロジェクトをコンパイルするときに問題が発生しました。必要な 3 つの外部 jar を追加したところ、次の問題が発生しました。
解決策がある唯一のリソースはこれです。残念ながら、参照された行を project.properties に追加し、推奨されるリソースとしてクリーニングしてもうまくいきませんでした。他の誰かが以前にこの問題に直面したことがある場合は、修正方法を教えてもらえますか?
assembly - (dex ファイルを操作するため) 逆アセンブルする方法 (dexdump のように)、変更する方法 (テキスト内のバイト コード)、次に再び dex にアセンブルする方法
「.dex」ファイルのバイトコードをテキスト形式に変更し、テキストを再度dexファイルにアセンブルしたい。最終的な「.apk」が使用可能であることを確認する必要があります。
アセンブラを自作するよりも、ツールについて知りたい。
bytecode - smali コードと dalvik バイトコード仕様、および dex ファイル内のオペコードの実際の 16 進数を混同する
という名前の Java クラスを定義しましたDefineFields
。空のコンストラクターがあります。コンパイルすると、classes.dex
ファイル内の 16 進コードは次のように表示されます。
その後、バイトコード仕様を検索し、見つけました
仕様書を読みました。しかし、私は何が何であるかを完全に理解することはできません35c
。(私は c を知っています、x は仕様で説明テーブルを持っています。) さらに知りたいのは、と の10
16 進数をどのように説明できるかです。7010
0C
050C
これらは仕様のオペコードと一致しません。