問題タブ [dalvik]
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 - LEB128 (u/s) はいつ使用されますか?
dex ファイルで、LEB128 はどのような目的で使用されますか? このページには、使用されていると書かれてい
ます.dex ファイルでは、LEB128 は 32 ビット量のエンコードにのみ使用されます。
LEB128 の他の用途はありますか?
java - カメラプレビューを再読み込みする前のAndroidメモリの問題
私のアプリには、カメラのプレビューとして機能するアクティビティがあります。画面全体に広がるSurfaceViewと、その上にオーバーレイされた多数のアイテムを使用しますが、それほど複雑なものはありません。このアクティビティは他のアクティビティを起動して、カメラのプレビューに戻ることができます。
リソースのクリーンアップ、ビットマップのリサイクル、メモリリークの回避などに細心の注意を払っています。このアプリを実行して、狂ったようにテストできますが、スマートフォンがしばらくオンになっていて、他のアプリがメモリにあると、カメラプレビューを保持するアクティビティを再開または作成すると、サイレントシャットダウンが発生します。クラッシュを再現するための一般的なテストケースは、アプリの使用、写真のスナップ(処理をトリガーする)、サブアクティビティの起動などです。アプリを終了し、リソースやグラフィックが重いものを起動してから、アプリを再開します。
クラッシュ時のlogcat出力は次のとおりです。
私のアクティビティはすべてのステップでログに記録されるため、これは、super.onCreateを呼び出してからコンテキストビューをxmlレイアウトに設定するまでの間にActivity.onCreateで発生します。私が最初に考えたのは、SurfaceHolderを取得するプロセス、またはSurfaceHolderメソッドで発生するプロセスは、メモリが不足している状況では多すぎる可能性があるということでした。xmlレイアウトを解析し、Viewオブジェクトを構築しているときに、setContentViewで発生しているようです。
私のカメラプレビューコードは、本や記事で見つけた例から取られているので、surfaceDestroyedで行う必要のある追加のクリーンアップがあるかどうか疑問に思っていますか?その時点でガベージコレクションをトリガーする必要がありますか?この考え方の理由は、メモリ内のアプリが少ない状況でアプリを実行するのに十分なメモリがシステムにあるためです。これは、自分のアプリが十分にクリーンアップされていないか、システムが自分のアプリに十分な速度でメモリを再利用できないことに関係しています。私が理解していないのは、setContentView中に多くの新しいメモリを割り当てようとしている理由です。
これが私のSurfaceコールバックコードとアクティビティで行われていることの言い換えです
java - Sun JVM の SAX パーサーを Android パーサーと一致するように構成するにはどうすればよいですか?
デフォルトの Android パーサーと一致するように、SAX パーサーの機能/プロパティを構成する方法はありますか?
Atom フィード用の SAX パーサーを実装しましたが、InstrumentationTestCase を介して実行せずに単体テストできるようにしたいと考えています。すぐにわかる違いは、startElement() では、Android で実行する場合は localName に要素名が含まれますが、Sun JVM で実行する場合は「name」メソッド パラメータが入力されることです。さらに、Sun JVM で実行する場合、空白は無視されますが、Android では無視されます。
android - Android エラー「仮想メソッド java/beans/PropertyDescriptor を解決できません」の回避策はありますか?
Android アプリケーション内でサードパーティの jar ファイルを使用しようとしています。jar ファイル内のいくつかのクラスを問題なく使用できました。ただし、クラスの 1 つは、dalvik vm でサポートされていないように見えるいくつかの Java クラスを参照しています。LogCat で表示されるエラーの一部を次に示します。
イントロスペクションとリフレクションに関連する Java クラスは、dalvik ではサポートされていないようです。2つのことを知りたいです。近い将来、dalvik でこれをサポートする計画はありますか? 次に、この問題を回避するための回避策を提案する人はいますか?
java - Smali(およびDalvik VMオペコードを使用する方法/タイミング)を学ぶための最良の方法は何ですか?
私はJavaを知っていて、Cを学びましたが、使用したことはありません。仮想マシンでも実際のマシンでも、アセンブリの形式はわかりません。
Smaliをハックする方法を学ぶための最良の方法は何ですか?
java - Android でのダブル チェック ロック
多くの人によると、1.5 以降を実行していてvolatile
キーワードを使用しない限り、やや一般的な Double-Checked Locking イディオムは Java では壊れています。
壊れたダブルチェック ロックのサンプル:
サンプルはこの記事からのもので、修正方法の詳細も記載されています: http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
上記の Pugh の分析は、Java VM に関するものです。私は Android で作業しており、Double-Checked Locking を使用するライブラリを頻繁に使用しています。dalvik VM のメモリ モデルはこのイディオムをサポートしていますか?
java - Android 転送コール
今日、私のテーブルにいるバグリアッドを見つけようとしています。私はJava/Android用にあまり開発していませんが、とにかくこれを理解しようとしています.
退職した同僚が開発した Android アプリがあります。現在、アプリは 2.2 で動作しています。しかし、2.3 で実行するとアプリが失敗します。
電話会社の交換機内で通話を転送するのに役立つアプリです。
それで何が起こるかはこれです。
人物 A (内部番号 001) は、X 氏から電話を受けました。人物 A は応答し、「はい、そうです」 人物 B (内部番号 002) はこの問題について十分な知識を持っています。あなたを彼に転送させてください!
次に、人物 A は自分の携帯電話で 002 に電話し、約 10 (通話が終了して通話を開始するのに十分な時間) 待ってから、番号 4 に別の電話をかけ (電話会社の内部転送コマンド)、MR.X を人物 B に転送します。
これは要するに、リスト内の人をクリックするだけでアプリが行うことです。
最初に人物 B に電話し、10 秒遅れて番号 4 の電話をかけます。
その後
述べたように、これは 2.2 で動作します。
ただし、2.3 では、次のスタック トレースを取得します。
だから私は、この問題に何時間も費やす前に、この問題に対する簡単な解決策があるかどうかを尋ねようと思いましたか?
ありがとう!
編集:私はこの手順を手動で実行しようとしました(着信コールを取り、保留にし、同僚に電話し、再び数字4を呼び出して転送します)、アプリが取得するのと同じエラー。では、アンドロイドは携帯交換機の機能をブロックしたのでしょうか?
編集: このバグは、Google によって狂った「バニラ」の Android 携帯にのみ影響します。HTC Samsung にはありません。確認済みケース: Nexus S
android - AndroidでGDBを使用してDalvik実行可能ファイルを実行するにはどうすればよいですか?
AndroidでGDBを使用してアプリケーションをデバッグしたいのですが、gdbとプロセス番号を使用してアプリケーションをフックできますが、最初からアプリケーションが何をするのかを確認したいと思います。
それを行う方法はありますか?
android - エラー 1 で Dalvik 形式への変換に失敗しました
ここに私のエラーがあります:
さて、5分前はうまくいきました。何も変更しませんでした ( Android エミュレーターを再度起動しただけです)。
みんなありがとう。
android - Dalvik形式への変換がエラー1エラーで失敗しました。私は何ができますか?
eclipseプロジェクトにWebサービスクライアントを追加すると、コンソールに下部のテキストが表示されます。この問題を解決するために私は何ができますか?ありがとう
コアライブラリを構築していない場合のコアクラス(java。*またはjavax。*)の不適切な使用または誤った使用。
これは多くの場合、IDE(Eclipseなど)を使用しているときに、アプリケーションのプロジェクトにコアライブラリファイルが誤って含まれていることが原因です。コアクラスを意図的に定義していないことが確実な場合は、これが何が起こっているのかを説明している可能性が最も高いです。
ただし、実際にはコア名前空間でクラスを定義しようとしている可能性があります。そのソースは、たとえばAndroid以外の仮想マシンプロジェクトから取得した可能性があります。これは間違いなく機能しません。少なくとも、アプリとプラットフォームの将来のバージョンとの互換性を危険にさらします。また、合法性が疑わしいこともよくあります。
アプリケーションのコンパイルではなく、完全な仮想マシンディストリビューションの作成の一部としてのみ適切なコアライブラリを実際に構築する場合は、「-core-library」オプションを使用してこのエラーメッセージを抑制します。
先に進んで「--core-library」を使用しているが、実際にアプリケーションをビルドしている場合は、ある時点でアプリケーションのビルドまたは実行に失敗することに注意してください。たとえば、オペレーティングシステムをアップグレードすると、アプリケーションが機能しなくなることに気付いた怒っている顧客に備えてください。あなたはこの問題のせいになります。
コアパッケージに含まれているコードを合法的に使用している場合、最も安全な代替手段は、そのコードを再パッケージ化することです。つまり、問題のクラスを独自のパッケージ名前空間に移動します。これは、それらがコアシステムクラスと競合することは決してないことを意味します。JarJarは、この取り組みに役立つ可能性のあるツールです。あなたがこれを行うことができないことがわかった場合、それはあなたが進んでいる道が最終的に痛み、苦しみ、悲しみ、そして嘆きにつながることを示しています。
[2011-05-1014:33:09-BPassWebサービステスト]Dx1エラー。中止[2011-05-1014:33:09-BPassWebサービステスト]Dalvik形式への変換がエラー1で失敗しました