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

Android関連のことを調べてみた2022年04月17日
目次

adb関連のあれこれ(Mac)

## 今回の内容
– adbとは?
– adbコマンドのファイルパスを通す
– adbコマンドでapkをインストールする
– AndroidデバイスでFirebaseDebugViewモードを有効にする方法

## マシン環境
– マシン:M1 MacbookAir 2020
– OS:Mac OS Big Sur Ver.11.3.1
– シェル:zsh 5.8 (x86_64-apple-darwin20.0)

## adbとは?
adbとは、「Android Debug Bridge」の略で、Android端末とやりとりするための多用途なコマンドである。アプリのインストールやアンインストール、クラッシュログの出力など、さまざまな操作が行える。

### Android SDK locationを調べる
– Android Studioを起動しSDK Locationを調べる
– 大体、`/Users/ユーザ名/Library/Android/sdk`が初期設定から変更しない場合ある。

## adbコマンドのファイルパスを通す
adbコマンドはsdkフォルダのplatform-

元記事を表示

ライフサイクル 呼び出されるタイミング早見表

ライフサイクルのメソッドがそれぞれどのタイミングで呼ばれるかの早見表を自分のメモ用に作成しました
# ライフサイクル早見表
|メソッド名 |呼び出されるタイミングと説明|
|:-|:—|
|onCreate() |アクティビティの生成時。アクティビティの初期化は通常ここで行われる|
|onStart() |アクティビティが表示されるとき。複数回呼び出される可能性がある|
|onResume() |アクティビティがフォアグラウド(画面上で操作できる状態)になり、ユーザーの操作を受け付けるとき|
|onPause() |アクティビティがフォアグラウンドでなくなるとき|
|onStop() |アクティビティが非表示になったとき|
|onRestart() |バックグラウンドから、再びフォアグラウンドになる前。onStop()からアクティビティが再表示されるとき|
|onDestory()|アクティビティが破棄されるとき|

# 最後に
こうして改めて見ると、ライフサイクルとアクティビティの関係が親密なのを再確認しました。
また、「android ライフサイクル」などで検索すると 画

元記事を表示

実機(Android端末)で実行する方法

# 初め
端末 :OPPO Reno A
androidバージョン :9
こちらの端末を使って実機でのアプリ実行の流れを説明していきます
# 早速

設定→端末情報と進みビルド番号の項目を数回タップします
「デベロッパーになりました」とトーストが表示されるので、確認次第前の画面に戻ります
![Screenshot_2022-04-15-21-19-44-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2394054/c8fdc29e-dced-758a-2793-b9704db411fb.png)


その他の設定→開発者オプション(①をやっていないと表示されていない可能性があります)と進みます
開発者オプションはオンオフを切り替えることが可能です
![Screenshot_2022-04-15-21-19-51-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2394054/d1cd6c0

元記事を表示

【Material Design】そういえばDynamic colorってなんだっけ?

## 概要
Dynamic colorは、Google I/Oで話題になったMaterial Youの仕組みの1つです。

ユーザーによって、デバイスやアプリの色が変わるってどういうこと? と思ったり、
何がいいのなど疑問に思うことが多いので、
この記事では、Dynamic colorについての解説しようと思います。

実際に[Material Design 3(通称:M3)](https://m3.material.io/)のDynamic colorを読んで
個人的に思った事をまとめました。

## Dynamic color とは?

>
> Dynamic colorは、Material Design 3(通称:M3)で定義されてれた新しい色

元記事を表示

NCMB Kotlin SDKを使ってTodoアプリを作る(その3 タスクデータの表示)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってTodoアプリを作ってみます。[前回はタスクデータの保存について解説しました](https://qiita.com/goofmint/items/92d1021dbebd7e7c1644)ので、今回は保存したデータの取得と表示、そしてデータ削除を解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。

## タスクデータの取得

データストアに保存したタス

元記事を表示

RemoteMediator + Paging3 + Room + ViewModel で既読機能、削除機能付きのRecyclerViewを作る。

# RemoteMediator + Paging3 + Room + ViewModel で既読機能、削除機能付きのRecyclerViewを作る。
参考

https://qiita.com/que9/items/59cc988bfd92d0acea07

https://qiita.com/snichi/items/822b1f015458c503be5a

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612874/61b9362d-e507-34c3-4931-00c3fef471d6.png)

図のように既読、削除機能付きのネットワークPagingを作ろうとしたとき、RemoteMediatorを使った網羅的な解説が見当たらなかったので、いろいろと探し回って得た知見を書いておこうと思います。
特に、日本語、javaの最近のandroid技術紹介ページが少なくなっているので参考いただければと思います。

#### 1.RemoteMediatorの設定

基本は、上記`AP

元記事を表示

NCMB Kotlin SDKを使ってTodoアプリを作る(その2 タスクデータの保存)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってTodoアプリを作ってみます。前回は[画面の仕様とSDKの初期化について解説しました](https://qiita.com/goofmint/items/8b0b566ad213a6215d94)ので、今回はタスクデータの保存について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。

## ナビゲーションの振り分け

今回は以下のようなナビゲーション

元記事を表示

NCMB Kotlin SDKを使ってTodoアプリを作る(その1 アプリの仕様とNCMBの初期化)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってTodoアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。

## ベースについて

今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。

## Composeについて

元記事を表示

NCMB Kotlin SDKを使って日報アプリを作る(その3 データの取得と一覧表示)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使って日報アプリを作ってみます。[前回はログインとデータの保存について解説しました](https://qiita.com/goofmint/items/ba8d8176b518af5273b1)ので、今回は保存したデータの取得と一覧表示について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。

## 日報データの取得

日報データの表示は `ListScreen` にて行います

元記事を表示

NCMB Kotlin SDKを使って日報アプリを作る(その2 ログインとデータの保存)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使って日報アプリを作ってみます。[前回は画面の仕様とSDKの初期化について解説しました](https://qiita.com/goofmint/items/5c0178e691dccdd42ade)ので、今回はログインとデータの保存について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。

## ナビゲーションの振り分け

今回は認証前提とし、認証していない場合はLoginSc

元記事を表示

NCMB Kotlin SDKを使って日報アプリを作る(その1 アプリの仕様とNCMBの初期化)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使って日報アプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。

## ベースについて

今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。

![ScreenShot_ 2022-04-12 17.

元記事を表示

unity Android でステータスバーの高さを取得する方法

![Screenshot_20220414-002120 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2123950/31cef996-a292-b221-7fd2-2b4968326813.png)

unityでAndroidにビルドする際、コンテンツが隠れないようにするため、ステータスバー(通知とか充電の部分)の高さを取得したいことがあります。
明確な記事がなかったので、その方法を記載しておきます。

# コード

“`.cs
#if !UNITY_EDITOR && UNITY_ANDROID
using (var unityPlayer = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”))
{
using (var activity = unityPlayer.GetStatic(“currentActivity”))
{
using (var

元記事を表示

NCMB Kotlin SDKを使ってカメラメモアプリを作る(その3 データとファイルの表示)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってカメラメモアプリを作ってみます。[前回はデータを保存する処理について解説しました](https://qiita.com/goofmint/items/dc335c55e6dd5c981c9a)ので、今回はその保存したデータの表示について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。

## 一覧画面について

![Sc

元記事を表示

NCMB Kotlin SDKを使ってカメラメモアプリを作る(その2 ファイルアップロードとデータ保存)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってカメラメモアプリを作ってみます。[前回は画面の仕様とSDKの初期化について解説しました](https://qiita.com/goofmint/items/59f4c23d3245aae1388d)ので、今回はデータを保存する処理について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。

## ナビゲーションバーの読み込

元記事を表示

NCMB Kotlin SDKを使ってカメラメモアプリを作る(その1 アプリの仕様とNCMBの初期化)

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってカメラメモアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

## 完成版のコード

作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。

## ベースについて

今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。

元記事を表示

【Android】サービスの概要とサンプルコード

今回はバックグラウンドで処理を実行できるサービスについての説明とサンプルコードをご紹介したいと思います。

## 環境
Android Studio:2020.3.1 Patch 4
kotlin:1.5.31
targetSdkVersion:31
minSdkVersion:27

## サービスとは
サービスとは Activity が終了した状態でもバックグラウンドで処理を継続して実行することができるアプリコンポーネントです。
Activity と異なり UI(ユーザーインターフェース)は持ちません。
用途としてはバックグラウンドでのサーバーとの通信、ファイル入出力、音楽の再生などが挙げられます。

## サービスの種類
サービスには次の3種類があります。

#### バックグラウンドサービス
通常のサービスです。
Activityが終了した後も何らかの処理を継続的に行うことができます。
アプリが終了したときは処理を停止します。

#### フォアグラウンドサービス
ユーザーが存在を認識できるサービスです。
Activity が終了した後だけでなくアプリが終了した後も動作し続けま

元記事を表示

Android6.0 ApacheHTTPClientからURLConnectionへの置き換え

*自分が失敗したならあと10人は失敗しているだろう(ゴキブリ理論)*
タイトル対応中にmultipartで詰まった、ということで失敗備忘録です。
# multipartでテキストと画像データをPost
### 以下を参考に実装
https://qiita.com/informationsea/items/778d9525c3aaded73577
### 問題発生
サーバーへテキストと画像を送信できた。がしかし、テキスト内の日本語が文字化けしている。
1.日本語以外(英字/数字)は文字化けなし。
2.画像は壊れることなく送信できている。
### 原因
`DataOutputStream`への書き込みを直接`writeBytes`で実装しているため、
`AndroidOS`標準の文字コード(UTF-8以外のなにか(未調査))でエンコードされていた。
### 対応
`writeBytes`は使用せず、一度StringBuilderであつめてからByte変換するようにした。
“` java:RestUtility.java
// 以下内容は参考元より多少の改変をしています
final Str

元記事を表示

Unity 2021 で Assets/Plugins/Android/res フォルダが使えなくなった際の対応

# 環境
– macOS(Apple Silicon)
– Unity 2021.3.0f1

# 事象
– 通知用アイコンやアプリ名のローカライズファイルを `Assets/Plugins/Android/res` に配置していたら Unity 2021で Android ビルドできなくなった

# 対応方法
– AARファイルではなく、「Android ライブラリプロジェクト」 なるものを作成して対応しました
– https://docs.unity3d.com/ja/2022.1/Manual/AndroidAARPlugins.html の「AAR プラグイン」じゃなくて下部の方
– AARファイルを zip コマンドや Android Studioから生成するという方法を複数の先人の方々が書いてくださっていたのですが、何かが至らなかったのか自分の環境だと上手く動きませんでした😣

# 手順
– `Assets/Plugins/Android` 直下に `CustomAndroidResource.androidlib` (フォルダ名は何でも大丈夫ですが、 `.andr

元記事を表示

Android EditTextで大文字英数字のみ入力可能とする

# はじめに
EditTextにて大文字の英字と数字のみ入力可能としたかったので、android:inputTypeで良いものがないかを探していました。
`textEmailAddress` `textUri`等は日本語も入力できてしまうのでダメでした。

結論、色々試したところ`textVisiblePassword`を使うとIMEから日本語がなくなったためこれを使用しました。
また、大文字を強制したいため`textCapCharacters`も追加し、android:digitsの指定も行いました。

IMEを開いた時点で大文字入力モードとなっており、小文字は入力できません。
# コード

“`xml
Material 3 vs Material 2 !? UIコンポーネント比較まとめ−1

![スクリーンショット 2022-04-13 11.38.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371376/c031a50e-07fd-36f3-d570-fda0d5f05281.png)
Android12とPixel6の発売のために、Googleのアプリの多くはすでにMaterialYou(Material Design 3)に更新されています。 2021年のAndroidDevSummitで、GoogleはMaterial Design 3の詳細を説明し、デベロッパーがアプリの構築に使用できる更新されたUIコンポーネントを披露しました。

![スクリーンショット 2022-04-13 11.40.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371376/2d99566a-31f7-5a0a-ab64-7a235937f910.png)

手始めに、「マテリアルデザイン3」は、正式には、

元記事を表示

OTHERカテゴリの最新記事