Android関連のことを調べてみた2020年11月17日

Android関連のことを調べてみた2020年11月17日

Pepper SDK入門(5) Robot focus と Robot lifecycle

Pepper SDK Plugin導入から始まり、簡単なロボアプリの開発を行ってきました。今回は、QiSDKの基本となるRobot focus と Robot lifecycleについて説明します。

#1.フォーカスを理解する
まずはロボットフォーカスについての簡単な説明です。 Activityがロボットのアクションを実行するためには、ロボットフォーカスが必要です。ロボットフォーカスはフォアグラウンドのActivityだけが保持することができ、ロボットフォーカスオーナーと呼ばれます。ロボットフォーカスはQiSDKに管理されており、Activityはいつでもロボットフォーカスを獲得したり喪失したりする可能性があります。

#2.ロボットライフサイクル
Pepper SDK入門(2) はじめてのロボアプリ開発①で登場したロボットライフサイクルについてです。 QiSDKがそれぞれのActivity用のロボットフォーカスを渡すために、RobotLifecycleCallbacksインタフェースを実装したオブジェクトが必要になります。以下はActivityにRobotLifecycleCall

元記事を表示

Pepper SDK入門(6) アクション

ロボットフォーカスとロボットライフサイクルに関しては、前回学習しました。今回はPepperのアクションについて掘り下げます。

#Pepperでのアクション実行
Pepperは、話す・聞く・動く・アニメーションを再生する・人間を見つめる・チャットを行う・視線を動かす・特定の地点に留まる・写真を撮るといった動作が可能です。アプリを開発する際、これらのアクションがメインの構成要素になります。

**前提条件**
このページで説明しているアクションの利用方法を理解するためには、Javaの非同期やスレッドに関する知識が必要です。

##1.アクションの作成
ビルダーを用いて、アクションを同期もしくは非同期で作成します。以下が各アクションをビルドする手順です。

1.アクションのビルダーにQiContextを渡す
2.ビルダーへアクションのパラメータを渡す
3.buildメソッドかbuildAsyncメソッドを呼び、アクションを作成する

**同期**
アクションを同期で作成するため、ビルダーのbuildメソッドを呼びます。

“`java

Say say = SayBuilder.with

元記事を表示

Pepper SDK入門(9) オートノマスライフ

オートノマスライフについて、簡単な概要を説明します。

#自律モードの管理
Pepperはオートノマスライフというモードを持っており、人間の検知や追跡、音への反応や立ち位置の調整といった振る舞いを、自律して自然に行い、Pepperをより生き物らしく見せています。

#1.Autonomous abilities
Autonomous abilitiesとは、Pepperに備わる複数の自律行動の機能のことです。自律行動はPepperへ生命らしさを与えるため、移動・アニメーション・顔追跡によって構成されています。

#2.Autonomous abilitiesの管理
写真撮影など、Pepperのアニメーションの動きを完全に停止させたい場合には、Autonomous abilitiesを止める機能を使用してください。ここでは概要のみの記述ですが、詳細はまた改めて解説します。

いつもよりも短いですが、今回はここで終了です。次回はアニメーションブラウザについて見ていきます。

元記事を表示

Pepper SDK入門(4) はじめてのロボアプリ開発③

アプリの実行についてまとめた前回の学習を踏まえ、このチュートリアルでPepperに”Hello human!”と発話させる簡単なアプリを開発していきます。

**前提条件**
Android Studio、Pepper SDK plugin、Robot SDKとその関連ツールがインストールされていること。

# 1.新規プロジェクトの開始
– HelloPepperの名称で、新しいプロジェクトを開始してください。
– Fileメニュー >New > Robot ApplicationからQiSDKの初期設定が完了していることと、ActivityにonCreateメソッドとonDestroyメソッド、及びRobotLifecycleCallbacksインターフェースが実装されていることを確かめてください。

# 2.発話の実行
Pepperを発話させるために、[Say](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/conversation/reference/say.html#say)クラスを使用します。これ

元記事を表示

Pepper SDK入門(8) アクションの連結

同期と非同期について、今回は様々なクラスやメソッドと共に解説を行っていきます。

#1.同期と非同期
アクションを順番に実行したい場合、同期で実行するようにコードを書く必要があります。

“`java

//animateアクションのビルド
Animate animate = …;
//animateアクションを同期で実行
animate.run();
//listenアクションのビルド
Listen listen = …;
//listenアクションを同期で実行
listen.run();
“`

ここでは[Animate](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/movement/reference/animate.html#animate)と[Listen](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch4_api/conversation/reference/listen.html#listen)を同期で順番に実行し

元記事を表示

Pepper SDK入門(3) はじめてのロボアプリ開発②

Androidプロジェクトの作成及びロボアプリの初期設定を行った前回に引き続き、Pepperのエミュレータと実機でアプリを実行するために必要な手順を確認していきます。

#1.Pepperのエミュレータ
まずは、Pepperのエミュレータで動作確認するための方法についてです。

**<手順>**
1.エミュレータボタン![WS000003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/63caa825-0f6a-984b-51a3-b5e969d4d75f.png)をクリックしてください。すると、ロボットエミュレータが表示されます。
2.プロジェクトにおける実行の構成でappが選択されているか![WS000002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/328c4224-a649-0da9-08c1-95d63fa408d6.png)を確認し、選択されていない場合はそれを選択して

元記事を表示

Pepper SDK入門(2) はじめてのロボアプリ開発①

発話を行うロボアプリの開発をしながら、開発手順について説明していきたいと思います。Androidプロジェクトを作成し、ロボアプリの初期設定を行い、ActivityがPepperを操作するために必要な実装について見ていきます。

#1.プロジェクト作成
ロボアプリ開発にあたって、まず初めに標準的なAndroidプロジェクトを作成し、それにロボアプリの設定を追加します。Android StudioのFileメニューのNewからNew Projectを選択し、Androidプロジェクトを作成してください。プロジェクト作成時のTarget Android DeviceではPhone and TabletのAndroid 6.0 (Marshmallow)が選択してください。

#2.ロボアプリの初期設定
作成したAndroidプロジェクトにロボアプリの初期設定を行います。

**<手順>**
1.FileメニューのNewからRobot Applicationを選択します。
2.サポートするRobot SDKのバージョンと追加するモジュールを選び、OKをクリックしてください。
3.Sync

元記事を表示

Pepper SDK入門(7) UIスレッドとワーカースレッド

前回、アクションについて解説するなかで同期と非同期の区別が登場しました。今回はその同期と非同期について、UIスレッドとワーカースレッドの二つを主軸に見ていきます。

**同期と非同期**
Pepperではタブレットと本体でそれぞれ異なるプロセスが動いており、二つのCPU間にはUSBを経由したTCP/IPによる通信があります。 同期と非同期のどちらでアクションを実行するかは、実際に動かしてみた上での選択をお勧めします。

#1.UIスレッド
Androidシステムからのコールバック(onCreateやOnClickListenerなど)はUIスレッド上で動作します。

“`java

@Override
protected void onCreate(Bundle savedInstanceState) {
}
@Override
protected void onResume() {
}
“`

タブレットからPepperに指示を出した場合、Pepperとタブレット間での通信が発生します。しかしUIスレッド上でのネットワーク通信は出来ないため、NetworkOnMainThrea

元記事を表示

Pepper SDK入門(1) Pepper SDKプラグインのインストール

Pepper SDK for Androidの公式サイトに記述されている情報から、理解したことをまとめていきたいと思います。

Android Studio対応版Pepperでは、AndroidのActivityからAPIを使用して、会話や動きを制御することが出来るようです。Pepper SDK for AndroidはAndroid Studioのプラグインであり、グラフィカルツール、Javaライブラリ、QiSDKを提供します。
Android Studio対応版Pepper向けのロボアプリを開発するため、以下に従って開発環境を整えましょう。

##《OSバージョンの確認》
まずは、OSとバージョンの互換性を確認してください。
Linux … Ubuntu 16.04 Xenial Xerus – 64bits only
Windows … Microsoft Windows 10 – 64bits only
Mac … Mac OS X 10.12 Sierra
##《Android Studioのインストール》
ロボアプリはPepperにビルトインされたAndroidのタブレット

元記事を表示

Pepper SDK入門(10) Animation Browser

これまでは実装方法の話題を続けてきましたが、Pepper SDK PluginにはPepperのアニメーションを作成できるツールやサンプルアニメーションも充実しています。今回からは、そうしたPepper SDK Pluginの使い方を勉強していきたいと思います。

#1.Animation Browserの起動
Animation Browserを利用して、サンプルアニメーションを自分のプロジェクトにインポートする方法を見ていきます。

FileメニューのNewから、Import animation…を選択してください。
![2019-05-16 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574697/28d67360-9ce4-9728-a0af-6bd7b143946d.png)

すると、Animation Browserが起動します。
![2019-05-16 (3).png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Pepper SDK入門(11) Robot ViewerとRobot Browser

Robot emulatorについては「[Pepper SDK入門(3) はじめてのロボアプリ開発②](https://qiita.com/kskrin/private/d3a2a02ec0f090540c0b)」でも触れましたが、もう少し詳しく見ていきたいと思います。

Robot emulatorは、下記のモジュールから構成されています。

モジュール名 概要
NAOqi Robot emulatorエンジン。実機での操作をエミュレートする。
Robot Viewer Pepperの挙動のシミュレーションを表示する。
AVD Android仮想

Pepper SDK入門(12) アニメーション編集

前々回のAnimation Browser、前回のRobot Viewerでの内容を踏まえた上で、様々なエディターを解説していきたいと思います。今回はAnimation Editorについて学習してみましょう。

#1.Animation Timelineファイルの作成
まずはAnimation Timelineファイルを作成してみましょう。

**<手順>**
1.FileメニューのNewから、Animation Timelineを選択してください。
2.アニメーションファイルの名前を入力しCreateボタンをクリックしてください。すると、空のアニメーションファイルのAnimationEditorが表示されます。
Pepper SDK入門(13) Trajectory Editor

前回はエディター学習の手始めに、Animation Editorについて勉強しました。引き続きエディターの理解を深めるため、今回はTrajectory Editorについて詳しく見ていきたいと思います。
#Trajectory
Trajectoryツールを使用して、目的地までの移動経路をTrajectoryファイルに設定することができます。ダンスなど決まった移動をする場合などに有用です。ただし、障害物をよけて通る必要がある場合などには別の移動手段(GoTo Actionなど)を利用する必要があります。
##Trajectoryファイルの作成
はじめに、Trajectoryファイルを作成する方法を解説します。
**<手順>**
1.FileメニューのNewからAnimation Trajectoryを選択します。
2.作成するファイル名を入力しましょう。Pepper SDK入門(14) Chat Editor

これまでAnimation Editor、Trajectory Editorと続けて、エディターの勉強を行ってきました。今回は、Chat Editorについて確認していきたいと思います。
#Chat Editor
Chat EditorはChat topicファイルの編集をサポートしてくれるツールです。AndroidStudioでChat Editorを利用するためには、PepperSDKをインストールする必要があります。PepperSDKインストールの手順は、[Pepper SDK入門(1) Pepper SDKプラグインのインストール](https://qiita.com/kskrin/items/65de908992c2a0e2751d)を参照してください。
##1.Chat Topicについて
ユーザーの発話への応答方法を簡単に記述できるQiChat Languageという言語があり、これでChat Topicを作成することでPepperと容易に会話することが出来るようになります。
###Chat Topicの言語設定について
Pepperはいくつもの言語を理解し会話することが

Pepper SDK入門(15) Layout Editor

Android Studioでは、Layout Editorというツールが利用できます。これは、デバイス上でのレイアウトをプレビューするためのものです。
以下でその使い方をまとめていますが、[Googleによる公式ドキュメント](https://developer.android.com/studio/write/layout-editor)も存在しますので、より詳しく知りたい方はそちらも参考にしてみてください。
#Pepperタブレットのプレビュー
Android Studioでは、様々なスクリーンをプレビューできるようになっています。Pepper用のアプリケーションをプレビューしたい場合は、Pepperのタブレットのサイズを正確に選択しましょう。Pepper pluginがインストールされていれば、デバイス一覧からPepperのタブレットが選択できるようになっていると思います。
スクリーンショット 2020-02-10 16.43.14.pngPepper SDK入門(16) Autonomous Abilities①

今回からはQISDKのAPIについて勉強していきたいと思います。
#Autonomous Abilities
**目的**

– Pepperを常に活動状態にしておく。
– 細かい実装抜きで、Pepperが生きているように知覚してもらう。

**動作原理**
Autonomous Abilityは、Pepperのバックグラウンドにおいて自律的に動作します。

**Autonomous Abilityの種類**

Pepper SDK入門(17) Autonomous Abilities②

今回のチュートリアルでは、PepperのAutonomous Abilityの停止と解除の方法について見ていきます。

Futureを使いますので、Futureについて知りたい人は[Pepper SDK入門(8) アクションの連結](https://qiita.com/kskrin/items/d352a7a0bbb16bf17533)を参考にしてください。

###まずは新しいプロジェクトを作成する
AutonomousPepperという名前で新しいプロジェクトを作成します。
そして、QiSDKの設定とMainActivityを作成しロボットライフサイクルの実装を行ってください。

##1.Abilityを停止する
MainActivityのクラスに新しいholdAbilitiesメソッドを実装します。

“`java

private void holdAbilities(QiContext qiContext) {
// AbilityのためのHolderをビルドして保存
Holder holder = HolderBuilder.wi

【備忘録】Androidのステータスバーにグラデーションを指定する

画面一面グラデーションなどをやると結構綺麗でした。

“`Activity.kt

class Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//好きなグラデーションの向き
val orientation = GradientDrawable.Orientation.BR_TL
//好きなグラデーションの色
val color1 = Color.parseColor(“#e5a323”)
val color2 = Color.parseColor(“#c4972f”)
val color3 = Color.parseColor(“#ac6b25”)
//決めたグラデーションを色が変化する順番に並べる(二色でも良い)
val colors: I

Android File Permission

# Manifest





Github ActionsでDeployGateにデプロイする話

# はじめに
今回はGithub Actionsを使ってDeployGateに自動デプロイする方法を紹介していきます。

CI/CDってなんかかっこいいですよね(小並感)

Androidの方法なのでiOSの方には参考にならないかもしれませんmm

# 準備
まずは準備していきましょう

まずはDeployGateを開きます。

そしたら右上のアイコンのところからアカウント設定を選び、下の方にあるAPI Keyを確認します。(後で使うのでメモっといてください)

次にGithubのレポジトリにsecretsを追加していきましょう。
レポジトリのタブバーからSettingを選択
![スクリーンショット 2020-11-16 22.57.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411927/da9d620c-b8be-1154-030e-7372dbad0bbd.png)

左のメニューからSecretsを選び、先ほどのAPIキーとDeployGateのユーザー名を追加します。

![スクリーン

Autonomous Ability タイプ 条件
BackgroundMovement 受動 待機時間
BasicAwareness 反応 何らかの刺激に反応
AutonomousBlinking 人間に反応