Ad
5: 2016-06-26 (日) 11:54:13 njf ソース バックアップ No.5 を復元して編集 現: 2018-01-04 (木) 21:28:37 njf ソース 編集
Line 1: Line 1:
 +[[AndroidでのANEの作成]]に戻る。
 +
ANEを作成するためには、Android側のプログラムをまとめたjarファイルが必要となります。その制作方法やテストの仕方をこちらでご紹介します。 ANEを作成するためには、Android側のプログラムをまとめたjarファイルが必要となります。その制作方法やテストの仕方をこちらでご紹介します。
*プロジェクトの作成 [#v878cca4] *プロジェクトの作成 [#v878cca4]
-まずAndroid Studioでプロジェクトを作成します。 +まずAndroid Studioでテスト用にAndroidで実行するためのプロジェクトを作成します。 
-Android Studio起動後に「Start a new Android Studio project」を選択します。+具体的には、ボタンを押すとアラート画面が表示されるアプリです。 
 + 
 +まずAndroid Studio起動後に「Start a new Android Studio project」を選択します。
&ref(asstart.jpg,mw:480,mh:360); &ref(asstart.jpg,mw:480,mh:360);
Line 28: Line 32:
*テスト用ボタンの設置 [#gf75d92b] *テスト用ボタンの設置 [#gf75d92b]
-ANEの作成はけっこう面倒なので、Android上で出来るテストは出来るだけ行ってから、ANEの作成にうつった方が効率的です。そのためのテスト用ボタンを設置します。+ANEの作成はけっこう面倒です。それを何度もやらなくてすむように、Android上でテストはできるだけ行ってから、ANEの作成にうつった方が効率的です。そのためのテスト用ボタンを設置します。
まず、左側のナビゲーションから「aap/res/layout/activity_main.xml」を選択します。 まず、左側のナビゲーションから「aap/res/layout/activity_main.xml」を選択します。
Line 54: Line 58:
作成したボタンを押すとアラート画面が表示されるようにします。 作成したボタンを押すとアラート画面が表示されるようにします。
このままjavaフォルダ以下に処理を書いても良いのですが、そうするとActivityなどのテスト用に作ったものまでjarファイルに含まれてしまいます。 このままjavaフォルダ以下に処理を書いても良いのですが、そうするとActivityなどのテスト用に作ったものまでjarファイルに含まれてしまいます。
-万が一、テスト用のコードが動いてしまうようなことが無いようにここでは別にライブラリを作成します。 +万が一にもテスト用のコードが動いてしまうようなことがないように、ここではAcitivityを含まないライブラリを別に作成します。 
-テスト用のコードがANEに入ったままでも通常は害が無く、ライブラリを作成せずにANEをつくることも可能ですので、面倒な人はそのままjavaフォルダ以下にANEの処理をするクラスを作成しても良いでしょう。ただし、ライブラリの作成は簡単なのでさほど手間が省けるわけではありませんし、整理のためにも別ライブラリにしておいた方が便利です。+テスト用のコードがANEに入ったままでも通常は害がなく、ライブラリを作成せずにANEをつくることも可能ですので、面倒な人はそのままjavaフォルダ以下にANEの処理をするクラスを作成しても良いでしょう。ただし、ライブラリの作成は簡単なのでさほど手間が省けるわけではありませんし、整理のためにも別ライブラリにしておいた方が便利です。
Android StudioでFile->New->New Moduleを選択します。 Android StudioでFile->New->New Moduleを選択します。
Line 72: Line 76:
&ref(newlibrarynavigator.jpg,mw:480,mh:360); &ref(newlibrarynavigator.jpg,mw:480,mh:360);
- 
*主処理の追加とAndroidアプリとしてのテスト [#n6d6c2ec] *主処理の追加とAndroidアプリとしてのテスト [#n6d6c2ec]
Line 86: Line 89:
 package njf.jp.anealert;  package njf.jp.anealert;
 + 
 import android.app.Activity;  import android.app.Activity;
 import android.app.AlertDialog;  import android.app.AlertDialog;
 + 
 public class ANEAlert {  public class ANEAlert {
     private Activity activity;      private Activity activity;
Line 104: Line 107:
             alertDialog.show();              alertDialog.show();
         }          }
 + 
     }      }
 + 
 }  }
Line 123: Line 126:
 package njf.jp.anealertsample;  package njf.jp.anealertsample;
 + 
 import android.support.v7.app.AppCompatActivity;  import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;  import android.os.Bundle;
 import android.view.View;  import android.view.View;
 import android.widget.Button;  import android.widget.Button;
 + 
 import njf.jp.anealert.ANEAlert;  import njf.jp.anealert.ANEAlert;
 + 
 public class MainActivity extends AppCompatActivity {  public class MainActivity extends AppCompatActivity {
     private ANEAlert aneAlert;      private ANEAlert aneAlert;
Line 138: Line 141:
         super.onCreate(savedInstanceState);          super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);          setContentView(R.layout.activity_main);
 + 
         aneAlert = new ANEAlert(this);          aneAlert = new ANEAlert(this);
         Button button = (Button) findViewById(R.id.showAlertButton);          Button button = (Button) findViewById(R.id.showAlertButton);
Line 148: Line 151:
                                           aneAlert.showAlert("Android",alertCounter + " times!");                                            aneAlert.showAlert("Android",alertCounter + " times!");
                                       }                                        }
 + 
                                   }                                    }
         );          );
 + 
     }      }
 }  }
Line 200: Line 203:
 package njf.jp.anealert;  package njf.jp.anealert;
 + 
 import com.adobe.fre.FREContext;  import com.adobe.fre.FREContext;
 import com.adobe.fre.FREExtension;  import com.adobe.fre.FREExtension;
Line 206: Line 209:
 import java.util.HashMap;  import java.util.HashMap;
 import java.util.Map;  import java.util.Map;
 + 
 public class ANEAlertFREExtension implements FREExtension {  public class ANEAlertFREExtension implements FREExtension {
     @Override      @Override
Line 217: Line 220:
                 return result;                  return result;
             }              }
 + 
             @Override              @Override
             public void dispose() {              public void dispose() {
 + 
             }              }
         };          };
         return context;          return context;
     }      }
 + 
     @Override      @Override
     public void dispose() { }      public void dispose() { }
 + 
     @Override      @Override
     public void initialize() { }      public void initialize() { }
Line 239: Line 242:
 package njf.jp.anealert;  package njf.jp.anealert;
 + 
 import android.app.Activity;  import android.app.Activity;
 import android.util.Log;  import android.util.Log;
Line 245: Line 248:
 import com.adobe.fre.FREFunction;  import com.adobe.fre.FREFunction;
 import com.adobe.fre.FREObject;  import com.adobe.fre.FREObject;
 + 
 public class ANEAlertFREFunction implements FREFunction {  public class ANEAlertFREFunction implements FREFunction {
     private ANEAlert aneAlert;      private ANEAlert aneAlert;
 + 
     @Override      @Override
     public FREObject call(FREContext freContext, FREObject[] freObjects) {      public FREObject call(FREContext freContext, FREObject[] freObjects) {
Line 277: Line 280:
ここまでくるとANEに必要なjarファイルを作成するのは簡単です。 ここまでくるとANEに必要なjarファイルを作成するのは簡単です。
 +
 +まず、ツールバーの「Build->Rebuild Project」を選択し、ビルドし直します。そして左のナビゲーションの上の「Project」を選択し(なければ右側のボタンを押す)、「anealert/build/outputs/aar/anealert-release.aar」を探します。
 +
 +&ref(aar.jpg,mw:480,mh:360);
 +
 +この「anealert-release.aar」が必要なファイルなので、右クリックして「Reveal in Finder」として表示させるなり、「Copy Path」でパスを確かめるなりして、どこか作業用のフォルダにコピーしてください。
 +
 +aarファイルは実際にはただのzipファイルなので、この「anealert-release.aar」適当なツールで解凍してください。macなどでは以下のコマンドで行えます。
 +
 + unzip anealert-release.aar
 +
 +するとその中に「classes.jar」というファイルがあるはずです。それがANE作成に必要なjarファイルです。実際、jarファイルの中を見るコマンド
 +
 + jar tf classes.jar
 +
 +を実行してみると、
 +
 + njf/jp/anealert/ANEAlert.class
 + njf/jp/anealert/ANEAlertFREExtension.class
 + njf/jp/anealert/ANEAlertFREFunction.class
 + ...
 +などが表示され、先ほど制作したクラスが全て入っているはずです。一方不要な「MainActivity」クラスは含まれていません。
 +
 +-[[AndroidでのANEの作成]]に戻る
 +-[[AndroidでのANEの作成/swcの作成]]に進む


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3283, today: 1, yesterday: 1
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF