🍩Ring 1.12:docs

- News
- Download
- Get Help
- Contribute
- Resources
- Team
- Website
- Index

### ナビゲーション

- 次へ »
- » 前へ |
- プログラミング言語 Ring 1.12 取扱説明書 »
- モバイル用 RingQt アプリケーションのビルド方法

# モバイル用 RingQt アプリケーションのビルド方法

モバイル用 RingQt アプリケーションのビルド方法を学びます。

## 開発環境のダウンロード

このリンクをご確認ください : http://doc.qt.io/qt-5/androidgs.html

ダウンロード

- Android SDK ツール

  > https://developer.android.com/sdk/index.html

- Android NDK (android-ndk-r21 で検証済み)

  > http://developer.android.com/tools/sdk/ndk/index.html

- Java SE Development Kit (JDK) v6 以降

  > https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

## Android SDK の更新

開発で必要な API および、ツールのパッケージを得るには Android SDK を更新します。

> Android 4.4.2 (API 19) で検証済み。

- Windows では - 愛用のシステムに合わせて環境変数を定義します。

1. JAVA_HOME

    用例 : C:\Program Files (x86)\Java\jdk1.8.0_05

2. ANDROID_HOME

    用例 : C:\JavaAndroid\AndroidSDK

## Qt for Android のインストール

- このリンクから Qt for Android をインストールします。

  > https://download.qt.io/archive/qt/5.12/5.12.6/

- Qt Creator を実行後に、 ツール → オプション → Android を選択して

    Android NDK と SDK のパスを追加します。

    > http://doc.qt.io/qtcreator/creator-developing-android.html

## Ring2EXE の用法

Qt プロジェクトのアプリケーションを Ring2EXE で手軽に用意できます。

用例:

    ring2exe myapp.ring -dist -mobileqt

注釈

Ring ノートパッドの配布メニューからでもできます。

情報

Ring2EXE (Qt プロジェクトの準備 - モバイル機器用の配布) オプションは配布メニューにあります。

## Ring アプリケーション用の Qt プロジェクト

Ring2EXE または Ring ノートパッドの配布メニューを使用後に、

- Qt Creator で生成された Qt プロジェクトを開きます。

  > フォルダ : target/mobile/qtproject

  > プロジェクトファイル : project.pro

- Qt Creator からリソース (YourAppName.ringo) にコンパイルされた Ring アプリケーションを見つけられます。

  > このファイル (Ring オブジェクトファイル) は Ring コンパイラで生成します。

    ring YourAppName.ring -go -norun

- Qt Creator でアプリケーションをビルドします。

1. リソースにはアプリケーションで使用する画像を追加できます。

   > またはテキストエディタを (Notepad など) で修正します : project.qrc

2. Ring アプリケーションから画像を見つけ出すには、リソースで使用されているファイル名が必要です。

   > 用例

    if isandroid()
            mypic = new QPixmap(":/cards.jpg")
    else
            mypic = new QPixmap("cards.jpg")
    ok

## Android 開発についての注釈 (RingQt)

1. メインのプロジェクトファイルは main.cpp です。

   > このファイルは Ring コンパイラ、仮想計算機 (VM) と RingQt で読み込まれます。

   > 実行中にリソースの一時作業フォルダから Ring オブジェクトファイルを取得します。

   > そして Ring 仮想計算機 (VM) で Ring オブジェクトファイル (ringapp.ringo) を実行します。

   > main.cpp で追加 (複数のファイルから構成されているプロジェクト) することにより、 リソースの一時作業フォルダから複数のファイルを抽出できます。

2. この Ring エディションにおいて、この関数は未実装です。

   > - データベース (ODBC, SQLite と MySQL)
   > - セキュリティとインターネット関数 (LibCurl と OpenSSL)
   > - RingAllegro (Allegro ライブラリ)
   > - RingLibSDL (LibSDL ライブラリ)

   > Qt クラスは RingQt から使用します

   > データベースのアクセスには QSqlDatabase クラスを使用します。

注釈

未実装のライブラリ (LibCurl, OpenSSL および Allegro) は全て Android 用にコンパイルできますが Qt プロジェクトは収録されていません。

3. Android 用のコードへ動作を切り替えたい場合は isandroid() を使用します。

用例:

    if isandroid()
            // Android のコード
    else
            // それ以外のプラットフォーム
    ok

4. ボタンのテキスト、または画像が繰り返し描画されることがあること気づくと思います！

     このコードで Qt の問題を回避できます。

    if isandroid()
            setStyleSheet("
                    border-style: outset;
                    border-width: 2px;
                    border-radius: 4px;
                    border-color: black;
                    padding: 6px;")
     ok

5. 手動設定によるコントロールの位置と寸法の代わりにレイアウトを常時使用します。

     これはユーザインタフェースの問題回避を想定した最良の方法 (小規模、追加の寸法を有するコントロール) です。

6. Qt クラスを扱う場合はリソースから画像を決定できます (main.cpp で使うためのコピーは不要です)。

用例:

    if isandroid()
        mypic = new QPixmap(":/cards.jpg")
    else
        mypic = new QPixmap("cards.jpg")
    ok

RingQt にはファイル名を決定するために AppFile() 関数があります。

用例:

    mypic = new QPixmap(AppFile("cards.jpg"))  # デスクトップまたは Androrid

7. プロジェクトのコード更新時、 Qt プロジェクトの生成に Ring2EXE を再実行する必要はありません。

Ring ノートパッドの配布メニューからオブジェクトファイルの生成 (*.ringo) を選択します。

その後 YourAppName.ringo ファイルを target/mobile/qtproject フォルダへコピーしてファイルの置き換えに応じてください。

8. アプリケーションにフォルダに Qt リソースファイル (project.qrc) がある場合は、

Ring2EXE または Ring ノートパッドの配布メニュー → Ring2EXE (Qt プロジェクトの準備 - モバイル機器用の配布) を実行するとリソースファイルが使用されるようになります。

用例は ring/applications/cards ゲームを参照してください。