20200922のAndroidに関する記事は4件です。

Cordova開発環境をWindows10 + AndroidとMac + iOSでそれぞれ構築

Cordovaのインストール(共通)

Windows、Macともに共通で実施します。

npmが必要なので事前に入れておきます。
私はWindowsならnodist、MacならnodebrewでNode.js環境を作りました。

Cordova公式サイトの「Get Started」に沿って進めます。

> npm install -g cordova

> cordova --version
10.0.0

> cordova create MyApp
Creating a new cordova project.

> cd MyApp

Cordovaアプリをブラウザで動かす

プラットフォーム(Cordovaの実行環境)を追加して動かしてみます。
まずはブラウザで動かします。

> cordova platform add browser
Using cordova-fetch for cordova-browser@^6.0.0
Adding browser project...
Creating Cordova project for cordova-browser:
        Path: C:\Users\hoge\Desktop\MyApp\platforms\browser
        Name: HelloCordova
Installing "cordova-plugin-whitelist" for browser
6.0.0

> cordova run browser

ブラウザが開いて「Hello World」アプリが実行されれば成功です。

Androidアプリの実行環境構築

こちらはWindowsで実施します。

事前準備

JDKのインストール

JDK(Java Development Kit)8をインストールします。
https://www.oracle.com/jp/java/technologies/javase/javase-jdk8-downloads.html

> javac -version
javac 1.8.0_261

環境変数「JAVA_HOME」の設定

JDK8をインストールしたファルダ「C:\Program Files\Java\jdk1.8.0_261」を環境変数「JAVA_HOME」としてOSに設定します。

Gradleをインストール

ビルドツールのGradleをインストールします。
https://gradle.org/install/
ダウンロードしたら解凍し任意のフォルダに置いてパスを通します。

> gradle -v

Welcome to Gradle 6.6.1!

Here are the highlights of this release:
 - Experimental build configuration caching
 - Built-in conventions for handling credentials
 - Java compilation supports --release flag

For more details see https://docs.gradle.org/6.6.1/release-notes.html


------------------------------------------------------------
Gradle 6.6.1
------------------------------------------------------------

Build time:   2020-08-25 16:29:12 UTC
Revision:     f2d1fb54a951d8b11d25748e4711bec8d128d7e3

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          1.8.0_261 (Oracle Corporation 25.261-b12)
OS:           Windows 10 10.0 amd64

Android Studioをインストール

Android SDKとエミュレーターを使うためにAndroid Studioをインストールします。
https://developer.android.com/studio

環境変数「ANDROID_SDK_ROOT」の設定

Android Studioの「Tools > SDK Manager」から↓のような画面を開きSDKのパスを取得します。

1.png

環境変数「ANDROID_SDK_ROOT」に設定します。

ライセンスの同意

> cd C:\Users\hoge\AppData\Local\Android\Sdk\tools\bin
> sdkmanager --licenses

上記コマンドを実行し、全て「y」を入力します。

プラットフォーム追加

> cordova platform add android
Using cordova-fetch for cordova-android@^9.0.0
Adding android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: io.cordova.hellocordova
        Name: HelloCordova
        Activity: MainActivity
        Android target: android-29
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@9.0.0
Discovered plugin "cordova-plugin-whitelist". Adding it to the project
Installing "cordova-plugin-whitelist" for android
Adding cordova-plugin-whitelist to package.json

エミュレーターで実行

Android Studioの「Tools > AVD Manager」からAVDを構成します。
エミュレーターを実行し、エミュレーターが立ちあがったら下記コマンドを実行。

> cordova emulate android

ビルドが成功すれば、↓のようにエミュレーターでアプリの実行が確認できます。

image.png

ビルドログを見るとAPKファイルもできているのが確認できます。

実機で実行

Androidの実機端末をUSBで接続します。
端末側で開発者向けオプションを有効化し、USBデバッグをオンにしておきます。

> cordova run android

ビルドが成功すれば、実機にアプリがインストールされます。

iOSアプリの実行環境構築

こちらはMacで実施します。

事前準備

Xcode

入ってなければインストールしておきましょう。

プラットフォーム追加

$ cordova platform add ios
Using cordova-fetch for cordova-ios@^6.1.0
Adding ios project...
Creating Cordova project for the iOS platform:
    Path: platforms/ios
    Package: io.cordova.hellocordova
    Name: HelloCordova
iOS project created with cordova-ios@6.1.1
Installing "cordova-plugin-whitelist" for ios

エミュレーターで実行

$ cordova emulate ios

ビルドが成功すれば、↓のようにエミュレーターでアプリの実行が確認できます。

image.png

実機で実行

Xcodeにアカウントを登録しておきます。

実機にデプロイするために ios-deploy が必要なのでこれもインストールしておきます。

$ npm install -g ios-deploy 

USBでiPhoneを接続してコンピューターを信頼します。

MyApp/platforms/ios/HelloCordova.xcodeproj をXcodeで開きます。
アプリに署名し、左上のデバイス選択から接続したiPhoneを選択します。

.png

$ cordova run ios

ビルドが成功すれば、実機にアプリがインストールされます。
IPAファイルも作成されます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

9. 【Android/Kotlin】動的にViewを追加

はじめに

DreamHanksのMOONです。

前回はWebViewというViewについて説明しました。
8. 【Android/Kotlin】ウェブビュー(WebView)

今回は動的にViewを追加する方法について説明していきます。

動的に追加の意味

以前まではViewやレイアウトを追加するためにレイアウトのxmlファイルに追加しましたが、
その方法は静的に追加する方法です。

例)チャットアプリで会話内容が追加されると、画面上にテキストを追加しなければならない状況があります。

動的にViewを追加する方法はActivityからViewを追加することです。

今回はテキストを入力し、そのテキストを画面上に動的に追加して表示していきます。

ActivityからViewを追加

・レイアウトのxmlを作成

1.PNG

activity_addview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".AddTextViewActivity"
    android:gravity="center">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text_et"
        android:inputType="text"
        android:hint="テキストを入力してください。"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/add_btn"
        android:text="追加"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/text_ll"
        android:orientation="vertical"/>

</LinearLayout>

xmlには空レイアウトをボタン下に追加します。

・Activityを作成

AddTextViewActivity.kt
package com.example.practiceapplication

import android.app.AlertDialog
import android.content.DialogInterface
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log.d
import android.view.ContextThemeWrapper
import android.widget.*
import kotlinx.android.synthetic.main.activity_listview.*
import javax.xml.validation.Validator

class AddTextViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_addview)

        val text_et = findViewById<EditText>(R.id.text_et)              //EditText(入力エリア)
        val add_btn = findViewById<Button>(R.id.add_btn)                //追加ンボタン

        val text_ll = findViewById<LinearLayout>(R.id.text_ll)          //空LinearLayout

        //追加ボタンのクリックイベントを設定
        add_btn.setOnClickListener {
            //テキストビューを生成
            val textView = TextView(this)

            //生成されたテキストに入力されたテキストを代入
            textView.text = text_et.text.toString()

            //テキストビューのサイズを修正
            textView.textSize = 15f

            //ボタン下の空LinearLayoutにテキストビューを追加
            text_ll.addView(textView)
        }

    }

}

アプリ起動

・初期の画面

こんにちはを入力してボタンをクリックした場合

よろしくお願いします。まで入力してボタンをクリックした場合

終わりに

今回は`動的にViewを追加する方法について説明しました。

次回はライブラリを追加する方法について説明します。
10. 【Android/Kotlin】ライブラリを追加

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[覚え書き]AndroidにWindowsからadbコマンドで接続する

FireHD10のLauncherをAmazon謹製からNovaLauncherに変更するためにadbコマンドに関して調べたメモ。

Android SDKツールを入手する

ダウンロード

公式サイトからWindows向け「Android SDKプラットフォームツール」をダウンロードする。
SDK Platform-Tools リリースノート  |  Android デベロッパー  |  Android Developers

任意の場所に解凍する

image.png

コマンドプロンプトから操作する

操作するAndroid側は開発者モードになってUSBデバッグを有効にしておきます。
※有効化の方法は各機種で異なるのでググってください。

Pathを変える

ちょこっと使うだけなので、Pathは通さず操作します。
何度も利用するなら、適当なフォルダーに移動してPathを通しておきます。

>cd C:\Users\nandy\Downloads\platform-tools

Android機器との接続を確認する。

>adb devices
List of devices attached
G0012B0594171947        device

shellで接続してみる

>adb -s G0012B0594171947 shell
maverick:/ $ 

Andoroidの操作ができるはず。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

UnityPlugin/Android/基本

[環境]

OS: windows10 pro
IDE:Android Studio4.0.1
Unity 2019.4.5f1
確認した実機: Galaxys8

[参考]

[Android用Plugin(java[aar])の作成(https://qiita.com/fukaken5050/items/c9ac144344c5f6ff9f57)
https://dream-target.jp/2019/01/04/unity_android/
https://qiita.com/okuhiiro/items/1aaec487d1ab8b086095
https://ghoul-life.hatenablog.com/entry/2019/01/26/030622
https://note.com/attomicgm/n/ncb22f460e8b6

https://baba-s.hatenablog.com/entry/2018/09/18/170000 確認済

本文

UnityでAndroidProjectを出力する

・適当にCUBE等を配置する。
・Unityでプロジェクトを作成する(例:TestAndroidPlugin)
・「ExportProject」「DevelopmentBuild」にチェックします。
image.png

・AndroidにスイッチしバンドルIDを設定する。
・com.ore.TestAndroidPlugin) → Javaでは重要なので意識してください。com.ore.TestAndroidPluginとなってる華胥ありますが私はここでつまづきました
・MinimumAPILevelを設定する(例:Android4.4 APILevel19) デフォルト
image.png

・Unityプロジェクトと同じフォルダにExport用フォルダを作成し、フォルダに移動してから「フォルダの選択」を押す(例:TestAndroidPlugin\Android)
 ・AndroidStudio用プロジェクトが生成される

AndroidStudioで読み込む

UnitySDKかAndroidStudioのSDKを使うか指定する。
image.png

プロジェクト解析にすこし時間がかかります。
・ビルドエラーは出ず問題なく実行できます。

image.png

Unityの機能をAndroidから使うため、classes.jar/android.jarを配置します。

今回の環境では以下に存在しました。
C:\Program Files\Unity\Hub\Editor\2019.4.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes

C:\Users\user\AppData\Local\Android\Sdk\platforms\android-30\
C:\Android\SDK\platforms\android-30

プラグインモジュールの追加

・メニューの「File」>「New」>「NewModule」を押す
 ・「AndroidLibrary」を選択し、「Next」を押す
image.png

 ・「Application/Library name」を設定する(例:UnityPlugin)
 ・「Package name」を右側の「edit」を押し、設定し、「done」を押す(例:com.ore.unityplugin)
 ・「MinimumSDK」をUnityに設定したものと同じか、小さいものに設定する(例:API23)
image.png

 ・「Finish」を押す

■「build.gradle」の編集

Unityライブラリファイル"unity-classes.jar"(またはclasses.jar)を、出力されるaarファイルに含めないようにします。

//classes.jarファイルは、コンパイルのときのみ使用する
//Android Studio 3系では、「implementation fileTree」と記述すると
//classes.jarも含まれてしまうため「compileOnly」と記載して
//jarファイルはコンパイルのみ使用するようにします。

dependencies {
    //implementation fileTree(dir: "libs", include: ["*.jar"])  NG
    compileOnly fileTree(dir: 'libs', include: 'unity-classes.jar')

    implementation 'androidx.appcompat:appcompat:1.2.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

 ・右上に出ている「SyncNow」を押す

プラグイン用javaクラスの追加

・プロジェクトツリーから「プラグイン名」>「Java」>「パッケージ名」を選択(例:unityplugin>Java>com.ore.unityplugin)
 ・(AndroidTest)や(Test)と書かれていないもの(一番上)
・メニューの「File」>「New」>「JavaClass」を押す
・「Name」を設定(例:TestPlugin)
・「OK」を押す
・以下はトースト表示する簡単なサンプル

image.png

package com.ore.unityplugin;

import android.app.Activity;
import android.widget.Toast;

import com.unity3d.player.UnityPlayer;

public class TestPlugin
{

    public static void showToast(final String message) {
        final Activity activity = UnityPlayer.currentActivity;
        activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

UnityPlayerでビルドエラーがでるので、unityLibrary-libsの[unity-classes.jar]を UnityPlugin-libsにコピーする。IDE右上の[SyncProject with Gradle]を押すとビルド成功します。
image.png
 ・aarのサイズは16K程度です。100kくらいある場合はunity-classes.jarも含んでおり、プラグイン利用時にUnityが持つJarと衝突します。

作成したPluginを使う

UnityProject/Asset/Plugins/Androidに作成したプラグイン *.aar を配置する。

スクリプト

TestPlugin を作成して適当なGameObjectに配置する。UnityでButtonとTextを生成してTestPlugin と接続する。
最後にAndroid実機で動作確認をする。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TestPlugin : MonoBehaviour
{
    [SerializeField] private Button _button = null;
    public Text m_text = null;

    private void Start()
    {
        _button.onClick.AddListener(() => OnButtonClick(_button));
        m_text.text = "start";
    }

    private void OnButtonClick(Button button)
    {
        m_text.text = "OnButtonClick_1";

        using (AndroidJavaClass javaClass = new AndroidJavaClass("com.ore.unityplugin.TestPlugin"))
        {
            Debug.Log("OnButtonClick");
            m_text.text = "OnButtonClick_2";

            javaClass.CallStatic("showToast", "Test");
        }
    }
}

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む