問題タブ [native-activity]
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 デバイスに複数のホーム画面がインストールされているとします。起動時または HOME キーを押すと、希望する HOME 画面を選択するためのダイアログと、このアクションをデフォルトとして設定するためのチェックボックスがユーザーに表示されます。
「このアクションをデフォルトとして設定」チェックボックスを選択してアプリケーションを起動すると、「デフォルト」のホーム画面が設定されるコードを知りたいです。
2 つの異なるモードでホーム画面をプログラムで制御するには、これが必要です。
よろしく、 プラガ
android - Android のネイティブ アクティビティからの復帰に時間がかかりすぎる
私の Android アプリには 2 つのアクティビティがあります。Java で記述された FrontEnd と、NativeActivity であるゲームです。Android NDK サンプル (samples\native-activity\jni\main.c) を参考にして、ゲームのメイン C++ モジュールを作成しました。ユーザーが Game から FrontEnd に戻りたい場合は、 を呼び出しますANativeActivity_finish(g_state->activity)
。その後、私が観察したことは次のとおりです。
APP_CMD_TERM_WINDOW
engine_handle_cmd
コールバックに入る- 私は電話で反応し
engine_term_display
ます(サンプルのように) - FrontEnd アクティビティが表示されます。そして、「プレイ」ボタンを押すと、ゲームが再び起動しますが、待ち続けます....
APP_CMD_STOP
engine_handle_cmd
コールバックに入るAPP_CMD_DESTROY
engine_handle_cmd
コールバックに入るif (state->destroyRequested != 0)
main.cpp のメインループで発火- サンプルと同じように、
android_main
戻ります。ようやく、安全にゲームを再開できるようになりました...
ステップ 3 と 4 の間の時間間隔が約 10 秒であることを強調したいと思います (少なくとも DEBUG モードでは)! また、ステップ 3 と 4 の間でフロントエンドからゲームを再起動すると、新しいアクティビティではなく「瀕死の」アクティビティが開始されます。
APP_CMD_TERM_WINDOW と APP_CMD_STOP の間で何が起こっているのか、なぜそんなに時間がかかるのかわかりません。同じアーキテクチャの別のアプリがあり、ステップ 3 と 4 の間で約 0.3 秒かかります。最初のアプリで GC にもっと多くの仕事があるかもしれません...わかりません。だから私の質問は:
- NativeActivity が終了プロセスを完了するのに非常に時間がかかるのは正常ですか?
- ユーザーがフロントエンドからゲームを再起動したときに、ダイイング アクティビティが発生しないようにするにはどうすればよいですか?
アップデート
私はLogCatに入ります:
05-29 18:27:17.729: W/ActivityManager(476): 起動タイムアウトが期限切れになり、ウェイク ロックが放棄されました! 05-29 18:27:17.739: W/ActivityManager(476): ActivityRecord{4209b2d0 u0 blah.blah.MainActivity} のアクティビティ アイドル タイムアウト
ステップ3と4の間です。
グーグルで調べたところ、このメッセージは「危険ではない」と見なされていることがわかりましたが、何か説明できるでしょうか?
android - Android OpenGL の吃音 - vsync?
レンダリング ループに問題があります。eglSwapBuffers
オブジェクトの移動中に、スワップの同じバッファのように見える小さなスタッターが2 回表示されます。私の FPS は常に 59 ~ 60 FPS です。移動はdeltaTime
、新しい位置を計算する際に考慮されます。
それは何ですか?ダブルバッファリングはこの問題を解決できますか???
ここに小さなビデオがあります (私の言いたいことがわかると思います)。 http://youtu.be/bQYiqHUzPuI
これが私のレンダリングループです
更新機能はこちら
必要に応じてEGL
、OpenGL
セットアップも投稿できます。
更新 1:
UINT32 は次のように定義されます。
typedef unsigned int UINT32;
そして、ここに1秒のデルタ時間があります
確かではありませんが、「f32DeltaTime : 0.006349」という行が問題になる可能性があると思います...しかし、一部のフレームで f32DeltaTime が非常に小さいのはなぜですか??? eglSwapBuffers はこのフレームで何もしませんか ??? しかし、なぜ ???質問よりも質問:)
android - Android の NativeActivity からの fopen/fread APK アセット
2010年以前の日付のソリューションしか見つけることができませんでした。ですから、これについてもっと最新のスタンスがあるかどうかを知りたかったのです。
Java の使用を避け、純粋に C++ を使用して、APK に保存されているファイル (1 MB 未満または 1 MB を超えるもの) にアクセスしたいと考えています。使用AssetManager
すると、他のすべてのオペレーティング システム (iOS を含む) の他のすべてのファイルのようにファイルにアクセスできなくなります。
そうでない場合、どうにかして fopen/fread を AssetManager API にマップできる C++ のメソッドはありますか?
android - 文字列への OpenGL ES エラー
OpenGL ES 1.1または2.0でglGetError()
(AndroidおよびiOS)および(Android)からエラー文字列を取得するための標準はありますか?eglGetError()
私はこのようなものを使用しています:
に格納されている戻り値の GLenum を手動で検索するのではなく、デバッガにテキストを提供するようにこれを拡張するとよいでしょう__gle
。