問題タブ [android-runtime]

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.

0 投票する
1 に答える
92 参照

android - SMS_Sending Blackberry 10 Android ランタイム?

Android アプリを Blackberry 10 用に再パッケージ化しようとしました。うまく機能しましたが、アプリは SMS を送信できません。

私のアンドロイドコード:

マニフェスト:

このコードはアンドロイドで機能しており、メッセージに送信できます。しかし、ブラックベリーでは機能しません。誰か助けてください。前もって感謝します。

0 投票する
2 に答える
7080 参照

android - マシュマロ権限の実装

既存の Android アプリに Android 6.0 のサポートを追加しようとしています。SYNCADAPTERデータの同期に使用しました。API 22までは正常に動作しますが、23(ANDROID 6.0)ではグループ権限を削除していAUTHENTICATE_ACCOUNTSます。

実行時の許可を取得する方法のサンプルを見つけました。同じことを試しましAUTHENTICATE_ACCOUNTSたが、機能していません。

私も1つの答えAUTHENTICATE_ACCOUNTSを見つけました。その答えと同じように使用するトリックはありますか?

削除されたアクセス許可のリストがここにあります。したがって、私のアプリがリストされているその許可を使用する場合。その場合、Android M (6.0) で動作するアプリはありますか?

0 投票する
1 に答える
62 参照

android - スレッドを生成したプロセスの存続時間

マニフェストに BroadcastReceiver が登録されていて、アプリがアクティブでないとします。したがって、新しいプロセスが生成され、BroadcastReceiver の onReceive() メソッドがこの新しいプロセスのメイン スレッドでトリガーされます。

ここで、onReceive() メソッドからスレッドを生成します (これは推奨されておらず、onReceive() を超えてプロセスの寿命を延ばすために Service を使用する必要があることはわかっています)。

生成されたスレッド(無期限に実行されると仮定しましょう)がプロセスを存続させ続けるのは興味深いですか?JVM について考えると、JVM はアクティブな非デーモン スレッドが存在するまで終了しないためです。そしてARTはどうですか?ART は JVM ではなく、コンパイラであり、コンパイルされたアプリケーションの動作は異なる場合があります。たとえば、プロセスを強制終了し、実行中かどうかに関係なくすべてのスレッドを強制終了するなどです。誰かがこの状況についての洞察を持っていますか?

0 投票する
1 に答える
282 参照

java - libcore の Runtime.class を変更して、新しい ART 機能を公開する

Android ランタイム ( ART ) にいくつかの新しい機能を挿入したので、インターフェイスを介して外部の世界に公開したいと考えています。これはネイティブ コードであるため、JNIインターフェイスを使用して、ガベージ コレクター機能と同様の方法で、この新しい機能を呼び出しますRuntime.getInstance().gc()

ただし、呼び出しを行う .dex ファイルに手動でバイトコードを挿入するため、IDE で使用できる新しい SDK を構築することは気にしません。

Runtime.javain libcore/luni、およびjava_lang_Runtime.ccinを関数artと同様の方法で編集しましたgc()。私は新しいものを生成しlibart.socore-libart.jarおり、デバイスでそれらをフラッシュしています。ただし、デバイスを再起動しようとすると、次のメッセージが表示されます。

ではRuntime.java、ネイティブ メソッドを登録し、@hide を使用してフル ビルドでいくつかの警告を抑制します。例えば、

ではjava_lang_Runtime.cc、関数 (ART 内部のものを呼び出す) を定義し、マクロを使用して gMethods[] 配列に登録します。例えば、

NATIVE_METHOD(Runtime, myMethod, "()V")

デバイスはブートループにあります。編集する必要のある他のファイルはありますか? 追加のモジュールをビルドするか、デバイス上の他のファイルを送信する必要がありますか?

ところで、 APKファイルに注入するため、新しいSDKものを構築したくありません。基本的には、Runtime インスタンスを取得してからメソッドを呼び出します。myMethodDalvik bytecode

0 投票する
1 に答える
1026 参照

android - プリコンパイル済みコード (oat ファイル) を動的に読み込んで実行する

Google は新しい Android バージョンで「openDexFile(byte[] fileContents)」を削除したため、ここで代替品を探しています。さらに、プリコンパイル済みコード (dex2oat を参照) も使用したいと考えています。

そのタスクを実行する機能を知っている人はいますか? ファイルもディスクに保存したくありません。

メモリ内のアプリのコードを置き換えるのはどうですか? これは、新しい ART VM で可能でしょうか? このトピックに関する詳細情報を探しています。以前の Dalvik VM で可能だったことは知っています。

どんな助けでも大歓迎です。ありがとう。

0 投票する
3 に答える
10630 参照

java - インポートされたライブラリを使用した Android Studio java.lang.NoSuchMethodError

次の手順に従って commons-codec-1.10.jar をインポートしました。

  1. de app ディレクトリの下に libs ディレクトリを作成しました
  2. libs ディレクトリ内の .jar を手動でコピーしました
  3. android-studio 内の .jar を右クリックし、[ライブラリとして追加] をクリックします。

私のbuild.gradeにこの行を追加しました

私のクラスでは、次のようにライブラリをインポートしました。

次に、次のようにBase64内のencodeBase64String静的メソッドにアクセスしようとしました:

アプリを実行するときを除いて、コンパイルしても問題はありません。次のエラーがスローされ、アプリがシャットダウンします。

ちなみに、私の DoThisThing クラスはアクティビティ内にはありません。短くするためです。ライブラリを確認しましたが、encodeBase64String は静的です。だから私は何をすべきか正確にはわかりません。私は Java と Android 環境が初めてです。だからどんな助けでも大歓迎です

0 投票する
1 に答える
4656 参照

android - Android ART - /dalvik-cache/ で .oat ファイルを使用していますか?

Android ART と、アプリのインストール プロセスで作成される「ネイティブ」コード ファイル .oat/.elf をいじっているときに、奇妙なことに気付きました。

私の理解では、デバイスが ART (Android >= 5.0) を使用している場合、アプリはコンパイル済みの oat ファイル (/data/dalvik-cache/arm64/) で開始されます。

そのため、アプリの使用済み fd をチェックして、そこにファイルが見つからなかったときにちょっと驚きました。通常の apk (/data/app//base.apk) のみが表示されます。

「ls -l /proc/PID/fd」のこの出力を確認してください

ここに画像の説明を入力

だから私はそれがそこにリストされていないだけかもしれないと思った. そこで、別の classes.dex を dex2oat ツールでコンパイルして、そのアプリの oat ファイルを自分で交換しました。

したがって、ファイルを変更した後でも、アプリは奇妙なメッセージやエラーなしで正常に起動します (logcat でも)。

これについての説明は何ですか?ART でアプリを起動するときに Android が行う詳細なプロセスは何ですか?

誰かが私のためにそれを片付けてくれることを願っています。どうもありがとう。

0 投票する
2 に答える
221 参照

android - Android M ランタイム権限

Android ランタイム権限を開発しています。私はすべての部分をやった。しかし、1つのことに不満があります。

特定の許可がすでに拒否されており、二度と確認しないかどうかを知りたいです。

以下の API を呼び出すと、確かに結果を取得できます。

ここで結果を得ることができます

しかし、私の必要性は requestPermissions(this, PERMISSIONS_CONTACT, REQUEST_CONTACTS); を要求せずにです。APIは、状態が二度と尋ねないことを確認したいのですが、チェックするかどうか

知ってる人いたらネタバレお願いします。