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

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

macOSで Android向けの OpenCVと OpenCV Contribをビルドする

## 環境変数

環境変数 ANDROID_SDK, ANDROID_NDK, ANDROID_NDK_HOMEをセットする。

“` zsh:.zshrc
export ANDROID_SDK=/Applications/adt-bundle-mac-x86_64/sdk
export ANDROID_NDK=/Applications/adt-bundle-mac-x86_64/sdk/ndk/21.0.6113669
export ANDROID_NDK_HOME=$ANDROID_NDK
“`

## ビルド
あとは以下の手順で git cloneしてビルド。時間はそれなりにかかる。

“`
mkdir ~/X
cd ~/X

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

cd opencv/platforms/android

元記事を表示

眺めて覚える C# Xamarin Hello World

###iPhoneの電池が持たなくなった。携帯電話の寿命は、大体3年ぐらいだ。
####はたして5万円以上の値打ちがあるのかが疑問である。
####そこでAndroidにすることにした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/3c2d1962-4aa2-b1d0-8da6-6eb42a31e2bb.png)

### さくさく動くし、電池も3日もつ!
### 値段も5万円から2万円適正価格だ!
前から気になっていたXamarinを使ってC#でプログラムしてみた。

1.Visual studio 2019のインストールについては、色々な記事があるので参考にしてほしい。
私の買ったディバイスは、UMIDIGI Xだ。まず、メーカサイトからディバイスドライバーを[**ダウンロード**](https://www.hardreset.info/devices/umidigi/umidigi-x/faq/drivers/)してWindows 10にinstall しよう。
!

元記事を表示

Fused Location ProviderでKotlin FlowとLiveDataを再入門してみた

# 前書き

CodeLabの[Building a Kotlin extensions library](https://codelabs.developers.google.com/codelabs/building-kotlin-extensions-library/index.html)をやってみました。

名前からしてライブラリの作り方のベストプラクティスじゃないかと思って、勉強しようと思ったら拡張関数の内容でした。
でも拡張関数よりも、中で使ってるFlowのほうがすごかったです。

勉強したいものと違いましたが、改めてFlowの凄さを再認識できたので記事にして記録を残そうと思いました。

# このCodeLabの内容は?

このCodeLabはリアルタイムで地理情報を表示するアプリを作っています。

数秒ごとにLoc

元記事を表示

失われたAndroid Device Monitor

# 課題
– unity(などのAndroid Studioを直接触らない開発環境)で、Android実機のデバッグログのチェックに、Device Monitorを利用していました。
– Android Studio 3.2以降に更新したら、Device Monitorが使えなくなりました。

# 対処
– Android Studioに統合されている”Logcat”を使います。
– メニュー View > Tool Windows > Logcat
– ツールバーでも切り替えられます。
– ログのフィルタリングも可能です。
– スクリーンショットや動画も撮れます。

# 公式ドキュメント
[Android Device Monitor](https://developer.android.com/studio/profile/monitor?hl=ja)
> Android Device Monitor は、Android Studio 3.1 でサポートが終了し、Android Studio 3.2 からは削除されています。Android Device Monit

元記事を表示

kotlinだとView情報の保存・リストアがParcelizeを使えるので簡単

`BaseSavedState` は `Parcelable` なので、 `@Parcelize` を使えば簡単に保存処理が書けます。以下は、 `num` というパラメータを保存する例です。

“`kotlin
override fun onSaveInstanceState(): Parcelable? {
return SavedState(
super.onSaveInstanceState(),
this.num
)
}

override fun onRestoreInstanceState(state: Parcelable?) {
val savedState = state as? SavedState
super.onRestoreInstanceState(savedState?.superState)
savedState ?: return
this.num = savedSta

元記事を表示

FragmentでBackボタンの処理をする

# どんな内容
FragmentでBackボタンの処理を変更する処理の書き方がネットで見つけたものがことごとくうまくいかなかったので、上手くいった方法のメモです。
androidx.activityのバージョンが関係してそうなので、今回のバージョンは

“`
androidx.appcompat:appcompat:1.1.0
“`

です。

# 参考にしたけどうまくいかなかっもの
@tarumzu さんの[「AndroidXでのバックキー制御」について、onBackPressedDispatcherの使い方や注意点補足](https://qiita.com/tarumzu/items/d6b18447ad24b5b5bfa2)を読んで、これで出来そうって思ったんですが、ちょっとうまくいかなかったです。

ダメだったのが、

“`kotlin
addCallback(this, object : OnBackPressedCallback {
override fun handleOnBackPressed(): Boolean {
~~ 略 ~~

元記事を表示

appcompat v1.0.0 と v1.1.0 の Activity の違い

## 最初に
サポートライブラリの後任となる AndroidX ライブラリですが、
マイナーバージョンが上がると内部的なクラス関係がけっこう変更されています。

標準ライブラリと言っても良い AndroidX ですが [1.1.0](https://developer.android.com/jetpack/androidx/releases/appcompat) では以下のアップデートが行われました。

**1.0.0 以降の重要な変更**
![2020-04-07_18h25_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486398/c23f2e56-66b7-a213-8f11-cbae3e200cb0.png)

## 2項目の AppCompatActivity について

この中の AppCompatActivity についてピックアップします。

“`
AppCompatActivity が Fragment 1.1.0 を介して、
Activity 1.0.0 の Compo

元記事を表示

[Android] 母艦からコマンドラインでパッケージを管理する

最近パッケージの管理方法が変わったみたいなのでまとめてみた。

# 事前準備(端末のシェルへのアクセス

## `adb`のインストール

Arch Linuxなら`android-tools`をインストールする。

“`shell
$ sudo pacman -S android-tools
“`

## 端末を開発者モードにする

例えば[こちら](https://qiita.com/knakamigawa/items/5b8bd2793920b517bf25)を参照

## 母艦からシェルにアクセスする

[公式ドキュメント](https://developer.android.com/studio/command-line/adb?hl=JA)を参照。
AndroidデバイスをUSBでコンピュータに接続し以下のコマンドを実行する。
途中で端末に「リモートアクセスを許可しますか?」と表示されるためOKを押す必要がある。

“`shell
$ adb devices
$ # 接続されている端末のシリアル番号が表示される
$ adb -s シリアル番号 shell
“`

元記事を表示

Androidxへの移行

はじめに
===
Android Support LibraryからAndroid xへ移行手順を書いていきたいと思います。
手順は簡単ですし、[Developerサイト](https://developer.android.com/jetpack/androidx/migrate?hl=ja)見れば一発で分かりますが画像メインでいきます。

環境
===
OS:Windows 10
Android Studio:3.5(統合は3.2以上だそうです)

移行前
===
赤のアンダーライン引いてるところがSupport Libraryです。
androidx.png

手順
===
[Refactor] > [Migrate to AndroidX…]
androidx</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>SupportLibrary</div>
<div class='tag-cloud-link'>AndroidX</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/kurramkurram/items/1ef7ca56662358ba151c'>元記事を表示</a></div>
<h3 id=mDNSでAndroidからRaspberryPiを探す

##Raspberry Pi

### avahi-daemonの設定

avahi-daemonのインストール(入っていなければ)

“`
sudo apt-get install avahi-daemon
“`

設定変更

“`
sudo vi /etc/avahi/avahi-daemon.conf
“`

noになっているとAndroid側で探索が出来なかった

“`avahi-daemon.conf
[publish]
publish-workstation=yes
“`

avahi-daemon.service再起動

“`bash
sudo systemctl restart avahi-daemon.service
“`

### host名確認

“`bash
cat /etc/hostname

“`

## Android

これをみた方が早いとは思う(参考)
https://developer.android.com/training/connect-devices-wirelessly/nsd.html

許可取り

元記事を表示

ReactNative-Expo内で展開したWebViewのchromeDevToolでの確認の方法

# 出来ること
– Expoで展開したWebViewのlogなんかをChromeDevToolで見られる
– WebView生成後の確認

# 出来ないこと
– 実機での確認

# 手順
– AndroidStudioからAndroidエミュレーターの起動
– `expo start` でexpoの起動
– `expo start`で開かれたwebサイト上の `Run on Android device/emulator`をクリックしてエミュレーターでApp起動
– この時、PCに複数のエミュレーターや実機が刺さっていると怒られる
– `chrome://inspect/#devices` をchromeで開くと対象のWebViewが出ているので確認できる
– 出てない場合はエミュレーターが開発者モードになってないのかも(build番号何回かTapするやつ

# おまけ
– 下記みたいなの見つけて絶望したけど出来た
“`
https://expo.canny.io/feature-requests/p/support-running-debugger-against-web

元記事を表示

【Flutter】BLoCパターンでアプリを作成してみた。~カウンターアプリ、githubリポジトリ検索アプリ~

## BLoCパターンとは
BLoC PatternはFlutterでのアプリケーション開発時に用いる、状態管理手法の1つです。
ビジネスロジックをコンポーネント単位で管理しやすくするためのパターンです。

[こちら](https://qiita.com/tetsukick/items/32d6cab8e176ecea2694)を参考にしてください。

## サンプルアプリの紹介

[Githubはこちら](https://github.com/Tetsukick/flutter_BLoc)

### カウンターアプリ
プラスボタン、マイナスボタンを押下することで画面中央の数字がインクリメント、デクリメントされます。

カウンターアプリカウンターアプリAndroidアプリ開発中にバーションアップで調べようと思うと(個人的に)ちょっと面倒なものまとめ

日々更新していきます…

## Fabric Gradle Plugin

https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin

## 合わせて読むとおすすめ

[よくチェックするAndroidアプリ開発で重要なRelease Notesリンクまとめ](https://qiita.com/operandoOS/items/d2feb53cd55e94c4e9a6)

元記事を表示

Kotlin 基礎文法

#目次
– 制御構文
– 繰り返し
– 関数
– ラムダ式

本記事は、自己学習のアウトプットのために作成した記事となります。
修正点等いただければ助かります。

##制御構文
・if文

“`
val Point = 100
if(score >= 55){
println(“Good”)
}else{
println(“Bad”)
}
//Good
“`

“`
//短縮
val Point = 100
val decision = if(Point >= 55) “Good” else “Bad”
println(decision)
“`

複数の条件式

“`
val Point = 100
val decision = if(Point >= 90){
“Very Good”
}else if(Point >= 50){
“Good”
}else{
“Bad”
}
println(decision)
“`

######when式の複数式
Rangeオブジェクトを使用して、記述いたします。

`※Rangeオブジェクトとは..範囲を表すオブジェクトです

元記事を表示

THETAプラグインで連続フレームにTensorFlow Liteの物体認識をかける

## はじめに
リコーの @KA-2 です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

今回は、[THETAプラグインでライブプリビューを扱いやすくする](https://qiita.com/KA-2/items/cef05a4960663bd2ba2f)の続編です。
上記記事の末尾で予告したとおり、THETAのライブプリビューにTensorFlow LiteのObject Detectionをかけ、その結果を利用します。
利用といっても今回はひとまず、「THETAの姿勢基準(local座標系)で、特定物を横方向にトラッキングする」というところまでを説明します。

元記事を表示

AndroidのPreference系を簡単に扱いたい

##Preference系
SQLiteを使うまでもないデータを保存しておくにはPreferenceを使うのが一番です。

しかしながら、一つのデータにアクセスするコードが微妙に長い。超せっかっち人間の僕にとっては悩みの種でした。

##簡単に扱えるようにした?
簡単?に扱えるようにクラスにしてみました。インスタンスはアプリで一つ。トップレベルで保持することとします。

##コード
“`Kotlin
lass SettingsClass(_context: Context) {
private val context = _context

fun setBoolean(name: String, key: String, value: Boolean) {
val preference = context.getSharedPreferences(name, Context.MODE_PRIVATE)
preference.edit().putBoolean(key, value).apply()
}

fun get

元記事を表示

Androidをペンタブレットにする(2/3)

前回、[Androidをペンタブレットにする(1/3)]( https://qiita.com/poruruba/items/7a48fd52aa302bc48caa) を投稿しましたが、タッチパネルだけに飽き足らず、Androidスマホが持っているいろんな機能を取り込んでみました。

そのうち、以下の機能の実装を備忘録としておきます。スニペット的に残しておきましたので、コピペで使ってください。

• Androidの地磁気センサー、ジャイロスコープ、加速度センサーを検出して、Windowsに通知する。
• AndroidのGPS情報を取得し、Windowsに通知する。
• AndroidでQRコードをスキャンし、Windowsに通知する。
• Androidで音声認識して、Windowsに通知する。
• AndroidのクリップボードにWindowsからコピーやペーストする。

# 地磁気センサー、ジャイロスコープ、加速度センサー

〇利用するクラス宣言

“`java
import android.hardware.Sensor;
import android.hardware.

元記事を表示

MediaSessionを使って秒で音楽アプリを作成する(超簡易版)

##音楽アプリを作りたい
音楽アプリを作りたいんだけど、MediaSessionとかMediaBrowserServiceとかメンドクサイ。秒で音楽を再生できるようにしたい。という人向けの記事です。自分のメモ的な面もあるので、不備があればコメントお願いします。質問されればいつでも答える所存。

##秒で基本的な機能を実装したい
###その1
MusicClassとMusicServiceという名でktファイルを作成。(マニフェストに登録とかはすっ飛ばします)

###その2
以下MusicClassのソースコード。これをコピーして貼り付け。

(自分のアプリからそのまま引っ張ってきているのでエラー多いかも。使わないなと思ったところは消して構わない。気にすることなかれ。)

“`Kotlin
class MusicClass(_context: Context) {

private val context = _context
private var service: MediaBrowserServiceCompat? = null

private var

元記事を表示

Delegated Properties で SharedPreferences を綺麗にしてみた

# はじめに
Delegated Properties を使って SharedPreferences を綺麗にしてみました。
(タイトルまんまですが..)

SharedPreferencesを使うクラスで保存する値が増えるたびに類似したコードが量産されていたので、
リファクタリングのタイミングで導入してみての使い勝手とコードを残します。

参考にしたサイトは以下です。
[公式](https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/delegated-properties.html)
[Kotlinアンチパターン slide 66~](https://www.slideshare.net/RecruitLifestyle/kotlin-87339759)
[KotlinのReadWritePropertyを使ってAndroidのPreferenceをナウく書く](https://medium.com/@yuzumone/kotlin-read-write-property-delegate-10feb8e3513

元記事を表示

Flutter環境構築 – 2(Xcode・iOSシミュレーターセットアップ編)

#はじめに
前回の「[Flutter SDKインストール編](https://qiita.com/naru_chan__/items/359fcdfb8aa092e9a44e)」に引き続き、
今回は「Xcode・iOSシミュレーターセットアップ編」です!
Flutter SDKのインストール・Flutterコマンドのセットアップがお済みでない方は、
先に「[Flutter SDKインストール編](https://qiita.com/naru_chan__/items/359fcdfb8aa092e9a44e)」をご覧ください。

#「iOSシミュレーター実行編」でやること
本編では以下の項目を行います。

– Xcodeのインストール
– iOSシミュレーターのセットアップ
– Flutterアプリを作成し実行する

では次項目より実際に作業していきます。

#Xcodeをインストールする
#### 1.App StoreよりXcodeをインストール
App StoreにてXcodeを検索し、インストールします。

すでにインストールされている方はアップデートがないかを確認し、
最新バ

元記事を表示

OTHERカテゴリの最新記事