トップページ > 記事閲覧
Android版DXライブラリの推奨動作環境
名前:和彦 日時: 2019/08/06 01:23

いつもお世話になっております、和彦と申します。 DXライブラリ Android版 (Ver3.20f)について2件質問がございます。 恐縮ではございますが、回答していただくことは可能でしょうか。 <前提> Visual Studio Community 2017にて※1のマニュアルを参考に DXライブラリのプロジェクトを作成し、Androidアプリを作成しました。 アプリの推奨動作環境を確認するために検証しました。 以下は検証結果になります。 DXライブラリで開発したソフトの必須動作環境は 「Android 2.3 以降で OpenGL ES 2.0 が正常に動作する Android 端末」とのことですが 一部の機種では動作が困難の様子です。    <機種>           <OSバージョン>   <結果>    KI-R10           8.1    正常動作を確認   Zenfone4Max          7.1.1    正常動作を確認   Nox(エミュレーター)          5.1.1    正常動作を確認   HUAWEI 403HW              4.4.2  インストールできるがアプリが起動しない   Nox(エミュレーター)          4.4.1    正常動作を確認 ※1 以下のマニュアルを参考にして作成したプロジェクトまたはエミュレーター Visual Studio Community 2017 の Androidアプリ開発でのDXライブラリの使い方 (ttps://dxlib.xsrv.jp/use/dxuse_vscom2017_android.html) <質問1> 必須動作環境を満たすバージョンの機器であっても動作しない可能性がある認識になりますでしょうか。 もしくはHUAWEI 403HWのように正常動作しない機器は稀なのでしょうか。 お手数をおかけします、よろしくお願いいたします。
メンテ

Page: 1 |

Re: Android版DXライブラリの推奨動作環境 ( No.1 )
名前:管理人 日時:2019/08/07 00:49

Android は色々な機種が存在するので『バージョン〇〇以上であれば確実に動作する』 とは言えないのが現状です ただ、主に開発時に使用していた機種( F-05F )が Android 4.4 だったので、 4.4 以上であれば正常に動作する確率は高いと思います Android はアプリが正常に動作しない場合、コンパイラを変更することで 正常に動作するようになることがあります 例えばデフォルトではプロジェクトのプロパティの『全般』にある 『プラットフォームツールセット』が Clang3.8等の Clang系のコンパイラに なっていますが、こちらを GCC 4.9 など GCC系に変更してコンパイルすると 起動しなかった機種で起動するようになったりします あと、Android端末で主に使用されているARM系のCPUはPCで使用されているx86系のCPUと異なり 以下のような倍数を跨ぐメモリアクセスをするとクラッシュすることがあります 1byte アクセスの場合 = 気にする必要なし 2byte アクセスの場合 = 2の倍数ではないメモリアドレスに対して 2byte アクセスするとクラッシュすることあり ( 例: char buffer[ 64 ] ; // ←大抵メモリアドレスは16の倍数に割り当てられます *( ( short * )&buffer[ 1 ] ) = 200 ; // 2の倍数ではないアドレスに対して2byteアクセスするとクラッシュすることあり ) 4byte アクセスの場合 = 4の倍数ではないメモリアドレスに対して 4byteアクセスするとクラッシュすることあり ( 例: char buffer[ 64 ] ; // ←大抵メモリアドレスは16の倍数に割り当てられます *( ( int * )&buffer[ 2 ] ) = 200 ; // 4の倍数ではないアドレスに対して4byteアクセスするとクラッシュすることあり ) しかもこの現象はエミュレータでは発生しないので、エミュレータでは正常に動作するのに、 実機でクラッシュする場合はこれが原因だったりします( ただ、必ずクラッシュするわけでは 無いので太刀が悪いです ) とは言え、新しい端末であればあるほど( Androidのバージョンが高ければ高いほど ) 正常に動作する確率が高いような印象はあります…が、テストしている機種の数が少ないので、 実際のところはどうなのかは不明です m(_ _;m > <質問1> > 必須動作環境を満たすバージョンの機器であっても動作しない可能性がある認識になりますでしょうか。 > もしくはHUAWEI 403HWのように正常動作しない機器は稀なのでしょうか。 すみません、そこまで沢山の機種で動作確認をしたわけではないので、稀なのか結構あるのかは不明です ただ、『4の倍数ではないメモリアドレスに対して4byteアクセスしてクラッシュ』系の問題がプログラムに 存在すると、正常に動作しない確率が高くなると思います
メンテ
Re: Android版DXライブラリの推奨動作環境 ( No.2 )
名前:和彦(解決済み) 日時:2019/08/07 21:54

早い回答ありがとうございます。 Android のバージョンのみならず  ・コンパイラ、メモリアクセスのコーディングの仕方が原因でアプリに対応しない可能性があるとのこと  ・バージョンが高いほどアプリが正常に動作する可能性が高いとのこと 承知しました。 自宅の環境にて本不具合のあったアプリを GCC 4.9でコンパイルし、HUAWEI 403HWで実行してみましたが「インストールできるがアプリが起動しない状態」のままでした。 コンパイラの原因ではなさそうです。 『4の倍数ではないメモリアドレスに対して4byteアクセスしてクラッシュ』系の問題かもしれないので 後で回答を参考にプログラムコードをレビューしてみたいと思います。 近く即売会にてアプリを配布する予定です。 ユーザから必須動作環境について質問があったときは 「Android 4.4 以降のAndroid 端末にて動作確認済み、ただし 低いバージョンだと正常に動作しない確率が高い」 と回答したいと思います。 本件について質問は以上になります、回答ありがとうございました。 本件はクローズでお願いいたします。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存