- 1. Android で Firebase In-App Messaging が表示されない問題の workaround
- 2. GoogleMapsAPI備忘録(2020年3月時点)
- 3. Lapack(clapack)を Android arm64 + cmake + NDK r20 or later でビルドする
- 4. Fuelを使ってパラメータ付きPOSTリクエストを送信した
- 5. OpenBLAS を Android aarch64 + NDK r20 or later でビルドするメモ
- 6. Android/Kotlin + Go で gRPC Bidirectional Streaming するサンプルをゼロから構築
- 7. 簡単なゲームを作ってみよう(Win or Lose)
- 8. AndroidのDozeを回避してみようと思った話(回避できたとは言っていない)
- 9. ActivityResultContractのコードを少し読んでみる
- 10. GIFアニメーションをImageViewで表示する
- 11. FlutterでURLSchemeを使って他のアプリ(例: Twitter)を開く(開けない場合の回避策も)
- 12. onConfigurationChangedで回転時のレイアウトを変更
- 13. Android単体でADBを使う。(迫真AARCH64部、Linuxの裏技)
- 14. Flutterを始めてListViewが難しい
- 15. [Android R (11)] 国内版(docomo版)Pixel 3 XLにAndroid 11 DP 2を入れる
- 16. 1人でアプリを作る【その1】
- 17. Android StudioにおけるBuild Outputの文字化けを解消
- 18. flutter + firebaseで本番環境と開発環境を切り替える
- 19. Android + C++ で wav 音声再生するための Oboe ライブラリのメモ
- 20. AndroidStudioのScratch Fileでビルドせずにプログラムを実行する方法
Android で Firebase In-App Messaging が表示されない問題の workaround
# はじめに
Android で Firebase In-App Messaging を表示させてようとしても、アプリの作り次第では、 **表示されない or すぐに消えてしまう問題** が発生することが確認されました。
全てのケースで解決しないかも知れませんが、意図通りに表示できる workaround を見つけたので記しておきます。Firebase In-App Messaging 導入時の参考になれば幸いです。
※調査した技術内容が多めです
※キャンペーン情報の取得完了のタイミングや、メッセージを表示したい Activity の lifecycle の状態次第では上手く行かないケースが存在するかも知れません
→ 技術的背景を理解した上で、最適な workaround を使うことをオススメします。## 本記事での用語
| 用語 | 意味 |
| — | — |
| LaunchActivity | `AndroidManifest.xml` で `android.intent.category.LAUNCHER` が指定されている Activity |
| Ma
GoogleMapsAPI備忘録(2020年3月時点)
# はじめに
今までの案件で使ったGoogleMapsAPIについての備忘録です。
APIの仕様や制限が変わるので、忘れる前に備忘録を残します。# GoogleMapsAPI
[公式URL](https://developers.google.com/maps/documentation?hl=ja)## マップ
– **Maps SDK for Android**
地図を Android アプリに追加します。– **Maps SDK for iOS**
地図を iOS アプリに追加します。– **Maps Static API**
シンプルで埋め込み可能な地図画像を最小限のコードで追加します。– **Maps JavaScript API**
ウェブサイトにインタラクティブな地図を追加します。独自のコンテンツと画像でマップをカスタマイズできます。– **Street View API**
360 度のパノラマ画像を使用して実世界の画像を埋め込みます。– **マップ URL**
Google マップを起動し、クロスプラットフォームの
Lapack(clapack)を Android arm64 + cmake + NDK r20 or later でビルドする
## 背景
* Lapack(+ BLAS) を使うアプリを Android でビルドせねばならない.
* CMake + NDK r20 or later(clang)でビルドしたい## ビルド
https://github.com/syoyo/clapack-cmake-android-arm64
に上げました.
clapack-3.2.1-cmake をベースにしています.
いくらか warning 出ますが, build できます.
aarch64 linux(Jetson AGX)で unit test を走らせたら, `xeigtstz_***` のテストは実行がコケました.
## 変更したところ
### uninit.c
FPU の設定をします.
使っていないようなので取り除きました.
(Android では FPU control できるかな?)### `__off64_t`
sysdep1.h で, OFF_T を int64_t にしました.
### arith.h
f2clib で, 実行時にシステムの情報を取得して arith.
Fuelを使ってパラメータ付きPOSTリクエストを送信した
なんとかHTTPリクエストをAndroidのエミュレーターからローカルホストのLaravelサーバーに送信することができたので投稿します。
# ライブラリのインストール
`app/build.gradle`にインストールするライブラリを書いていきます。“`gradle:app/build.gradle
dependencies {
// Fuel for HTTP Connections
implementation ‘com.github.kittinunf.fuel:fuel:2.2.0’
implementation ‘com.github.kittinunf.fuel:fuel-gson:2.2.0’implementation “com.squareup.moshi:moshi:1.5.0”
implementation “com.squareup.moshi:moshi-kotlin:1.5.0”
}
“`HTTPリクエストを送信するための`Fuel`と,JSONのパラメータを作成するための`moshi`をインストー
OpenBLAS を Android aarch64 + NDK r20 or later でビルドするメモ
## 背景
OpenBLAS(+ Lapack)を Android arm64 で動かしたい.
Lapack(clapack)はこちら
Lapack(clapack)を Android arm64 + cmake + NDK r20 or later でビルドする
https://qiita.com/syoyo/items/09009ca77393cc0bd986## ビルド方法
How to build OpenBLAS for Android
https://github.com/xianyi/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Androidは情報が古いです.
NDK r20 などでは, gcc 関連がそれなりに消えて clang only になったので, wiki の情報だとビルドがうまくいきません.
Compiling OpenBLAS for Android #2005
https://github.com/xianyi/OpenBLAS/issues/2005にありました.
“`
cd $OPENBL
Android/Kotlin + Go で gRPC Bidirectional Streaming するサンプルをゼロから構築
# これは何
サーバが Go 、クライアントが Android/Kotlin という構成で 双方からリアムタイムにメッセージを送り合う仕組みとして、gRPC Bidirectional Streaming を使ったサンプルを作るのに必要な設定やコードをまとめたものです。
いろいろ調べながらやっていると新旧どれが正しい情報かわからず結構手間がかかったり、基本的な所でつまづいていることに気づきにくかったりしたため、この記事もしばらくの間しか使えないと思いつつ、記事にまとめておくことにしました。
Go も Android/Kotlin も普段使いしているわけではないため、色々と内容に不備があると思います。何かあれば指摘いただけるとありがたいです!
# 仕様
– 文字列ひとつだけのメッセージ `Greeting` をサーバとクライアント間で双方向で送り合う
– サーバは数秒ごとに連番付きのメッセージをクライアントに送り続ける
– サーバはクライアントからメッセージを受信したら標準出力に表示
– クライアントはボタンをクリックすると TextEdit の内容をサーバに送
簡単なゲームを作ってみよう(Win or Lose)
#簡単なゲームを作ってみよう
[ドットインストール](https://dotinstall.com)の[はじめてのJavaScript](https://dotinstall.com/lessons/basic_javascript_v4)で「#11 簡単なゲームを作ってみよう」をやっあと、
ふと思い立ったのでFlutterで作ってみました。#仕様
1. 5つのマスがあり、5つのうちランダムで1つが「Win」、4つが「Lose」になる。
2. 「Lose」が選択された場合、マスに”Lose!”が表示される。
3. “Lose!”が表示されるのと同時にマスが小さくなる。
4. 「Win」が選択された場合、マスに”Win!”が表示される。
5. “Win!”が表示されるのと同時にマスが青からピンクに変わり、回転しながら四角形から円に変わる。こんなところでしょうか。
AndroidのDozeを回避してみようと思った話(回避できたとは言っていない)# はじめに
DozeはAndroid6から導入された素晴らしいバッテリー消費抑制機能です。
内容としては、バッテリー駆動かつ、静止状態かつ、画面OFFの状態が一定時間続くとで端末をスヤァーっとお眠りさせてバックグラウンド処理をさせなくするものです。
無法地帯と化していたバックグラウンドでのアプリの処理に制限をかけた事によりバッテリーの消費量は大幅に減ったと思います。
一般ユーザにはありがたい機能ですね。
しかし、企業向けアプリにとってはちょっと厄介な機能だと思っています。
顧客からバックグラウンドで位置情報やセンサーデータを取り続けたいんだーと言われたらやるしかありません。
そこで今回は、色々な方法でDozeを回避できるか試してしいこうと思います。
# 施策
駄目だった施策も交えつつ一つずつ試した結果を説明します。
## 施策1:フォアグラウンドサービスで処理を行う
結論から言いますが、駄目です。
制限されるのはバックグラウンド処理だけだからフォアグラウンドとして動作するフォアグラウンドサービスは大丈夫じゃないか?と思ったら大間違いです。きっちりDozeの対
ActivityResultContractのコードを少し読んでみる
Activity 1.2.0-alpha02 と Fragment 1.3.0-alpha02で追加されたAPIのようで、型安全にstartActivityForResultを扱えるようです。またテストもできるようです。
コード例
AppCompatActivityやFragmentで`prepareCall()`でlauncherを用意して、`launch`を呼ぶと`startActivityForResult`を行うことができるようです。“`kotlin:MainActivity.kt
val intent = Intent(this, SecondActivity::class.java)
val launcher: ActivityResultLauncher= prepareCall(
ActivityResultContracts.StartActivityForResult()
) { activityResult: ActivityResult ->
Log.d(“MainActivity”, activityResul
GIFアニメーションをImageViewで表示する
# はじめに
需要があるかはわからないですが、Gifアニメをこの度自プロジェクトでAndroidアプリ上で動かしたいという要望があったので調べました。# 調べてみた
まずは、「Gif animation android imageview」などでググってみました。
すると・・・glideというライブラリを使うといいよ!
という記事がたくさん出てきました。https://qiita.com/maehara08/items/eef63804c52b2e0bb404
それ以外だと、Movieクラスを使ってCanvasに一枚ずつ書き出して・・・みたいなゴリ押しパターンがありました。
弊社では、ライブラリを使うにはちょっと時間がかかるのと、外部の信用できる会社のものでないと結構たいへんなので、glideライブラリを使うというのは避けたかったので、ゴリ押しパターンを実装してみようということになりました。
# 準備
## Gifアニメのダウンロード
とりあえず
FlutterでURLSchemeを使って他のアプリ(例: Twitter)を開く(開けない場合の回避策も)
Flutterで個人開発をしている[村松龍之介](https://twitter.com/riscait)と申します。
(仕事ではiOSアプリのネイティブアプリ開発を行っています)今回は、アプリに自分のTwitterアカウントのリンクを載せようと思いました。
最初は普通にURLを貼って、ブラウザで開くようにしていたのですが、アプリ入ってるならアプリが開いた方が良いよね…と思い実装した備忘録です。## URLを開くためにurl_launcherパッケージを使う
まず、URLを開くために必要な `url_launcher`パッケージを導入済みでなければ導入します。
[url_launcher | Flutter Package](https://pub.dev/packages/url_launcher)簡単に書きますと、`pubspec.yaml`ファイルの`dependencies`に1行追記します。
VS Codeですと、⌘ + S で保存すれば`flutter pub get`が自動で走りますのでインストールできます。
Android Studioでもおそらく同じ?
onConfigurationChangedで回転時のレイアウトを変更
##やりたかったこと
ImageViewの画像を画面いっぱい(アスペクト比はそのまま)に表示してかつ、ボタンを真下に置きたかったのですが、、、
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420023/b3d8ab08-3421-03a5-c89d-3a7708243dc7.png)
横回転するとボタンが隠れてしまうし、横画面に合わせてレイアウト変えると縦回転したときにボタンの位置がずれてしまってました。
レイアウト用のxmlは1つだけにしたかったので、ソース内で動的にImageViewのサイズを変えることにしました。##やったこと
####レイアウト
– レイアウトはConstraintLayoutを使う
– ImageViewの設定:
– サイズ(縦向き時):
– height: wrap_content
– width: 0dp(match constraint)
– サイズ(横向き時):
– height: 0dp(match
Android単体でADBを使う。(迫真AARCH64部、Linuxの裏技)
## 注意
– 完全に単体でやるには開発者向けオプションにネットワーク経由でデバッグがないと無理。
– ネットワーク経由でデバッグがないと再起動する度tcpipを、使わざるを得なくなる…GoogleはAndroid12で改善してくれるのか!?—-
本編:
プロローグ
`(Y)`ぬわああああああん疲れたもおおおおおおおん
`(M)`チカレタ…
`(Y)`じゃけん風呂入って寝ましょーねー
`(Y)`おっそうだな(自問自答)
_ここからベッドシーンへ…_
`(Y)`ファッ!このアプリADB権限いるのか!?
`(Y)`やめたくなりますよー……
`(M)`あっそうだ!Androidにadbぶち込んでやれば解決だゾ〜
`(Y)`それができれば苦労して ないです(断言) aarch64バイナリは提供されてない、はっきりわかんだね!
`(K)`や!、せんぱい! aarch64バイナリがありましたよ!
`(Y)`ファッ!(デデドン!) クゥーン?
`(M)`よし!じゃあ打ち込んでやるぜ!ゾ_キューピー3分クッキングの曲の始まり_
# 本編
今回は中に入れます!(Archlinux
Flutterを始めてListViewが難しい
# きっかけ
長期休みに入り興味があったFlutterを始めた。
いろいろやってみて、まずListViewにつまづいた。つまづいたポイントとして、– クラスの使い方
– 要素のUIの構成
– どのように要素にデータを渡すかがある。
開発はXamarinを軽く触ったことがある程度で、初心者。
書籍は[基礎から学ぶFlutter](https://www.amazon.co.jp/基礎から学ぶ-Flutter-石井-幸次/dp/4863542941)を購入し、[公式サイト](flutter.dev)も見ながらスタートしたFlutter超初心者。また、Flutterを開発するにあたって日本語の記事が異常に少ないので書こうと思った。これからも何かつまづくことがあればちょくちょく書く予定。# ListView
ListViewとは要素をスクロールできる画面に表示していくウィジェット。
FlutterにはYoutubeに公式チャンネルがあり、多くのウィジェットの紹介動画があり、短く、見やすい動画となっているのでおすすめ。もちろんListViewの動画もある。
[Android R (11)] 国内版(docomo版)Pixel 3 XLにAndroid 11 DP 2を入れる
こんばんわ。
さよならメモリーズって曲を最近知ったんですけどめっちゃ気に入りました。# 本題
Android 11 DP 2出た!
でもまだ[Android Beta登録](https://www.google.com/android/beta?hl=ja)(端末単体のアプデでAndroidの開発版が入れられるやつ)始まってないんですよね。
というわけで今回は少し怖い(メイン機なので)ですがPCを使った方法で入れていこうと思います。読むのめんどいわって人は「Android Flash Toolで導入する」のところまで飛ばしてください。
# 環境
|なまえ|あたい|
|—–|—–|
|端末|Pixel 3 XL (docomoで買った)|
|PC|Windows 10 / Chrome 80 |# 公式サイト
https://developer.android.com/preview/get# OTA Update vs Factory Image vs Android Flash Tool
Android 11 DPを入れる方法はこの3つです。
公式サイト
1人でアプリを作る【その1】
#はじめに
こんにちは。
今回から、『Unity』を使って**スクロールゲーム**を作っていきます。
企画から完成までの過程を日記感覚で記録していきます!#制作環境
macOS Mojave バージョン 10.14.6
Unity 2019.2.19f1#企画
「近未来の世界で、主人公は機械で…」という、妄想を膨らませながら、
イメージを紙にサラサラと書いていきます。
ステージ構成や、プレイしてもらう時間、ターゲットなどをじっくり考えました。実際に書いたものが下記画像になります。(きたない…)
![gameRough.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601003/bca393e0-9bea-45f5-814c-6d045c100c24.jpeg)![flow.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601003/d75c9aee-c0bf-aad0-7689-824a7fc23fd
Android StudioにおけるBuild Outputの文字化けを解消
#状況
Windows10上のAndroid Studio 3.6.1でアプリを開発している。文字列やコメントに日本語を含むコードも問題なくビルド・実行できる。
しかしBuild Output Windowのエラーメッセージが文字化けして読めない。![fig1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284841/159908c1-1c06-e20b-2703-5dc01722bd43.jpeg)
#解決方法
「メニュー>Help>Edit Custom VM Options..」を選択する。![fig2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284841/433de0f6-c47c-35f6-eeb0-7ccd9e778c5d.jpeg)
表示されたファイルに「-Dfile.encoding=UTF-8」を追加する。
![fig3.jpg](https://qiita-image-store
flutter + firebaseで本番環境と開発環境を切り替える
# この記事ですること
* `flutter run`と`flutter run –release`でfirebaseの環境(プロジェクト)を切り替える
* `flutter run`と`flutter run –release`でflutterの環境を切り替える# この記事でしないこと
* 別アプリ化
* ステージング環境の構築# 対象
個人開発者など、複雑な環境構築を必要としないけど、最低限、本番と開発環境を分けたい人# 複雑に環境を分けたい人は
以下の記事が参考になります。
[flutterで本番/ステージング/開発を切り替える – Qiita](https://qiita.com/ko2ic/items/53f97bb7c28632268b5a)
[Flutterで環境ごとにビルド設定を切り替える — iOS編](https://medium.com/flutter-jp/flavor-b952f2d05b5d)
[【iOS】FlutterでFlavorを使って環境ごとに切り替えてビルドする(debug/stg/prod)](https://qiita.co
Android + C++ で wav 音声再生するための Oboe ライブラリのメモ
# 背景
* Android で手っ取り早く C++ で wav 音声を再生したい
* Android Vulkan で compute shader で STFT 処理とか spatial audio 処理した音声データを再生したい
* Vulkan と一緒に使いたいので, Android 8 以降対応でよい.## Native audio library
AAduio(Android 8.0 or later) と OpenSLES がありますが, どちらも低レイヤーなので, wav をお手軽再生とかはできません.
https://developer.android.com/ndk/guides/audio
## 既存ライブラリ
手っ取り早く Android C++ で wav 再生は SoLoud があります.
https://sol.gfxile.net/soloud/
クロスプラットフォームでよいのですが, Android はあまりメンテされていないようで, CMake 用の設定がなかったり, backend は SLES だけだったり, logcat に
AndroidStudioのScratch Fileでビルドせずにプログラムを実行する方法
##■概要
ちょっとした演算や勉強、作成した関数の結果などを調べたいときにアプリケーション全体を作成せずに、軽量な方法でKotlinコードを作成および実行できます![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252283/41b5d06c-a178-c473-c70d-dbb639297db9.png)
##■特徴
– 軽い!!!
– AndroidStudioのエディタと基本同等機能が使える
– 入力保管
– 動的なエラー表示
– 関数ジャンプ
– ローカルヒストリーなどなど
– プロジェクト内のクラス、関数の利用
– 全プロジェクトで共通のScratch Fileを使用可能
– プロジェクトに含めなくてよいのでGitなどで他者と共有する心配がない##■使い方
**・ショートカット**
【Mac】command + shift + N
【Windows】Ctrl + Alt + Shift + Insert<