Android アプリケーションで同時実行の問題があります。問題の基本は、Java コードが C 関数を呼び出し、C コードがロードされる前に JNI インターフェースを介して値を設定しようとすることです。C関数をMainActivity.java呼び出すものとNativeLib.javaC共有ライブラリをロードするものがあります。この同時実行性の問題を解決するエレガントな方法はありますか? CからいくつかのJavaフィールドをtrueロードが終了したときに設定し、その値がtrueになるまでMainActivityメソッドをロックすることによって? それとも、他のより良い解決策がありますか?

エンジンの基本図です。GLThreadループ内で、メソッドはonDrawFrame guardedRun()() を呼び出し、JNI 呼び出しを C に送信してフレームをレンダリングし、guardedRun()新しい GL フレームを受信すると、フレーム バッファーをスワップします。
問題はメソッドにありonMessageReceived()ます。今、Activity on startup を別のデバイスに接続したいのですが、接続したときに Java から C に送信されるメッセージを受信したいのですが、問題は C がまだロードされておらず、Java が既に起動して接続されていることです。 . では、C はどのように Java に「ロードされるまで待ってください」と言いますか?