今までの開発で起きた問題
今までAndroidとEclipseを使って開発をしていたんですが、FPSが低下している原因が分からなかったので、いままで分からない所を調べてみようと思いました。
ターゲットSDKとか調べてみました。
アプリケーションが動作することがわかっている最高のAPIレベルを選択します。
この属性は、ターゲットバージョンに対してテストしたことをシステムに通知します。
システムは、ターゲットバージョンとのアプリケーションの前方互換性を維持するため
の互換動作を有効にすべきではありません。
とあるのですが、まだよくわかりません。 とくにターゲットバージョンとのアプリケーションの前方互換性を維持するための互換動作を有効にすべきではないのは何故か?
ということ、それとそもそもターゲットバージョンとのアプリケーションの前方互換性
ってなんだろう?
インストールされたSDKからコードをコンパイルするターゲットAPIを選択します。
これは通常、最新のバージョン、またはリフレクションなしで直接アクセスしたいす
べてのAPIをサポートする最初のバージョンです。
これも良くわからん。 また引っかからないといいけどね。
Androidアプリを作ろうとすると、完了ボタンがブラックアウトしたままで作成できない問題。
プロジェクトを削除してする。そして念のため、Eclipseを再起動して、新しくプロジェクトを作り直す。そのとき、最小必須APIレベルを16、ターゲットAPIとコンパイルAPIを同じ19にする。これでプロジェクトが作れた。
重いエミュレータ(5.0.1以降)でOSがクラッシュした。メモリエラーでした。
まさかエミュレータ起動しただけでブルースクリーンになるとは思いもよらなかったなぁ~
でも考えてみると、エミュレータってCPU制御やメモリ関連がシビアなものですもんね。 ただこれからは19以上でエミュ動かすとなると怖いですね。
FPSが低下した問題
Host GPUって設定だった。Android仮想デバイスの編集の下にあるチェックボックスの
奴 なぜエミュでもFPSが低下するか疑問だった。これは開発に影響大きい問題だから看過できなかった。でも調べてもそういう情報ってかなり少ないんですね。
これもAndroid4.7だから起こることなのかもしれない。 分かれば対処は簡単だけどハマるとすごく困るのがこの手の問題なんですよね・・・
Host GPUってOpenGL関連のAPIじゃないと効果はないって説明からAPI命令からGPUを使うものがあるんでしょうか? それが他のViewにはないとか?
もしくはエミュレータ上のGPUまでエミュレートしてるから遅いとか?
HostGpuを使うと速度速いっていうんで謎ですね。
逆に外すと早い。まぁまだ検証が不十分だから断定なんてできないし、これからだな