問題タブ [android-make]

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 投票する
2 に答える
132 参照

c++ - 共有ライブラリで定義された構造/データの 1 つのコピーを、複数の共有ライブラリで定義されたさまざまなオブジェクトと共有します

言語: C++/C Android Makefile システム: https://developer.android.com/ndk/guides/android_mk

共有ライブラリを開くアプリケーションがあり、foo.sofoo.so 内で他の 3 つの共有ライブラリを開きbar1.sobar2.so3つのbar3.so異なるスレッド (pthread_create) で同じアプリケーション/プロセスで開きます。pid は同じですが、スレッド ID は bar1、bar2、bar3 で異なります

bar1.sobar2.so、のそれぞれにafterを使用しbar3.soEntry呼び出される関数があり、さまざまなタイプのオブジェクトがライブラリ内に作成されます。dlsymdlopenbar1 2 3.so

bar1.sobar2.soまた、いくつかの共通の構造体/ルーチンを持つ、bar3.so呼び出された別の共有ライブラリへの動的リンクもあります。明示的に「dlopen」されていません。bar1.so、bar2.so、bar3.so の make ファイルで、必要な共有ライブラリとして指定します。のそれぞれにシングルトン構造を作成したい、およびとの間で読み書きできる。baz.sobaz.sobaz.sobaz.sobar1.sobar2.sobar3.so

baz.sobutbar1.soで静的オブジェクトを作成しようとしましたbar2.sobar3.so、構造の個別のコピーを取得しているようです。共有されていません。個別のコピーとは、以下のコード スニペットによると、 bar2.so を読み取るsharedData.aと、22 ではなく 10 であることを意味します。

すべてのバー ライブラリが同じプロセスの下にありますが、それでも共有メモリ API を使用する必要がありますか?

これらのリンクを確認しましたが、私の質問には答えていないようです: 2 つのアプリケーション間で単一の共有ライブラリ (*.so) インスタンスを共有する方法 共有ライブラリ構造

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

android - インストール後に Android.mk mm コマンドを使用してビルドされた APK がデバイスで実行されない

私はhttps://wladimir-tm4pda.github.io/porting/build_cookbook.htmlに従っており、Building a simple APKを変更しました。

Android.mk ファイルは最上位にあります。

Android 10 AOSP に含めmm、ターミナルでコマンドを使用してビルドしました。

出力 apk のサイズは 1 MB (5 MB である必要があります) であり、実行後 adb install -r -t -f LocalPackage.apk はアプリ リストに表示されません。Android Studio でビルドすると、正常に動作します。

私の目標は、このアプリをシステム アプリにすることですが、最初のステップはmmビルドを成功させることです。これを修正する方法は?

ここに画像の説明を入力

ここに画像の説明を入力

アップデート:

Android.mkファイルの場所をAndroidManifest.xml存在する場所に変更し、Android.mk.

今、私は 2MB のアプリを取得しています。アプリはインストール後にデバイスに表示されますが、実行するとすぐにエラーでクラッシュします。

形成されたapkの内容は、 ここに画像の説明を入力

Gradleでビルドする内容は、 ここに画像の説明を入力

mm で apk をビルドして正常に実行するにはどうすればよいですか?