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

Android関連のことを調べてみた2020年06月29日
目次

Androidエミュレータ(Windows)で使用するシステムイメージを差し替える・/systemの内容を変更する

# はじめに
Android Studioでアプリ開発するにあたり、SDK Managerでエミュレータとシステムイメージを取得して使用していましたが
・自前でAOSPからビルドしたシステムイメージを使う
・エミュレータで/system以下に変更を加える(アプリをpushするなど)
という必要があり、それで行き詰まった部分があるので、解決した方法と合わせて記録しておきます。

## わたしの環境
– Android Studio/エミュレータ動作環境
– Windows 10 Home 64bit
– CPU: Core i7-8700 @ 3.20GHz
– RAM: 16GB
– Android Studio: 3.6.3
– Android Emulator: 30.0.12

– AOSPビルド環境(仮想PC)
– Oracle VM VirtualBox 6.0
– Ubuntu 16.04 LTS
– AOSPソースコード: Android Pie android-9.0.0_r42

# 自前でビルドしたシステムイメージを使いたい
## 困ったこと

元記事を表示

Flutterで画像、カスタムフォントを使用する方法

今回はFlutterアプリで画像とカスタムフォントを使用する方法を記述します。
## プロジェクトに画像とフォントを追加する
1. プロジェクト直下に`assets`フォルダを作成し、その直下に`images`と`fonts`フォルダを作成する。
2. 使用したい画像とフォントを各フォルダに格納する。

スクリーンショット 2020-06-29 4.11.29.png

## `pubspec.yaml`にパスを記述する
Flutterで画像やフォントを使用するには、`pubspec.yaml`にパスを記述する必要があります。

“`pubspec.yaml
flutter:

# The following line ensures that the Material Icons font is
# i

元記事を表示

Dagger Hilt触ってみた

# はじめに
巷で噂のDagger Hiltをようやく触ってみました。[Codelab](https://codelabs.developers.google.com/codelabs/android-dagger-to-hilt/#0)を一通り終わったので、実際に[過去の記事](https://qiita.com/karass/items/883353b80ac84becf44c)でDaggerを使ってDIしたのですがそれをHiltに移行した手順をまとめます。

# Gradle
“`build.gradle
// build.gradle (Project)
ext.hilt_version = ‘2.28-alpha’
dependencies {
classpath “com.google.dagger:hilt-android-gradle-plugin:$hilt_version”
}

“`

“`build.gradle
// build.gradle (App)
// Dagger_hilt

元記事を表示

Androidのウィジェットでできること、できないこと

iOS 14でホーム画面ウィジェットが使えるようになるそうです。Androidでは昔からウィジェットがありましたが、このタイミングでAndroidのウィジェットにももう一度注目が集まりそうな予感がします。しかし、ウィジェットはかなり制約が大きく、何ができて何ができないのかをエンジニア以外に理解してもらうのは難しかったりします。
ここでは、どうやって作るかという話ではなく、Android開発に詳しくない人や非エンジニア向けに、ウィジェットってどういうものなのか、何ができて何ができないのかをざっくり理解していただけるような内容で書いてみようと思います。

## ウィジェットの制約の考え方

あるアプリのウィジェットを表示しているのは、そのアプリ自身ではなく、ホームアプリ等のウィジェットが設置されているアプリです。ウィジェットを提供するアプリは、こういう内容を表示してくださいとお願いすることしかできません。
まずはここを押さえておいてもらえば以降の制約についても理解しやすいかもしれません。

実際に表示しているのは別のアプリなので、ウィジェットが表示されている間、アプリのプロセスは生きている

元記事を表示

リップルカラーの変更方法

# はじめに
Buttonのリップルカラーを変更したいと思ったが、思い通りの色に変更することができなかった。 ここではButton(Material)のリップルカラーの変更方法の手順をまとめます。

# 目標
以下のようなOutlineButtonを作成します。

## Layout
“`xml

元記事を表示

FlutterでWeb,Android,iOSの3プラットフォームから同じコードでS3に写真をアップロードする

##概要
6月にWeb向けのImagePickerが出ていたので、ネイティブアプリとブラウザアプリを同じソースコードでビルドして、どのデバイスでもファイルアップロード出来るのかというのを試しました。
AndroidとiOSに加えてWebでもPickerが同じ処理で使えるようになったのは結構画期的だなと思ってのメモです。内容はクライアント側に重点を置いています。

### 1. パッケージをインポートする。
pubspec.yamlにimage_pickerとimage_picker_for_web、amazon_cognito_identity_dart_2を追加する。
私が試したバージョンは以下です。

“`
image_picker: ^0.6.7
image_picker_for_web: ^0.1.0+1
amazon_cognito_identity_dart_2: ^0.1.14
“`

### 2. 画像取得処理を書く。thenを使用してますが、awaitでも問題ありません。

“`
import ‘package:image_picker/image_picker

元記事を表示

フォークしたリポジトリをライブラリとして取り込む

ケースとしてはあまり多くないとおもいますが、掲題のとおりフォークしたライブラリをプロジェクトに取り込む方法について記載します

経緯としては、以下のYahooのライブラリを改造して使いたかったためです。
https://github.com/yahoojapan/AppFeedback-android

通常なら類似のライブラリを探すのでしょうけど、今回は見当たらなかったためForkすることにしてみました。

1. Forkが完了すると以下な感じにリダイレクトします
https://github.com/harutamasato/AppFeedback-android

2. sdkディレクトリ内でいじりたい箇所をいじって、masterにコミットしていきます。

“`
$ git commit -a -m “Message”
$ git push origin master
“`

3. 使える状態になったらタグをきってPushします。
2020/6/28現在、オリジナルの最新が1.0.5なのでそれ以上のものを設定します。
今回は1.0.6とします。正常にPushされると、以下の

元記事を表示

別途アプリをインストールせずに、決まった時間にAndroid端末でアプリを起動する

# きっかけ

日付や時間帯を指定して、起動したいアプリがあります。たとえばmineoアプリなど、毎日一回アプリを起動させて、起動ボーナスの回収と「ゆずるね」の宣言を行いたい場合などがあります。

そういうときのために[AutomateIt](https://play.google.com/store/apps/details?id=AutomateItPro.mainPackage&hl=ja)などのアプリもあるのですが、なにぶんAutomateItは多機能な分端末にかける負荷も大きく、普段使いするような端末にはあまり入れたくありません。

そういうときには、Join by Joaoapps(以下Join)のAPIを使う という方法があります。これを使うとAPI経由で特定のURLをブラウザに開かせたり、アプリを起動させたりといったことがURLを叩くだけで実現できます。

## やりかた

まず自分のAPI KEYとデバイスIDを確認するため、[Join On The Web](https://joinjoaomgcd.appspot.com)を開きます。

![image.png](

元記事を表示

パッケージ名からアプリ名(AndroidManifestのlabel属性のもの)を取得する

暗黙的Intentで選択したアプリ名を使いたくて、パッケージ名からアプリ名を取得する必要があったため備忘録含め以下に展開します。

[こちらのgetApplicationLabel](https://developer.android.com/reference/android/content/pm/PackageManager#getApplicationLabel(android.content.pm.ApplicationInfo))を使うと以下のようになります。
※[loadLabelでも可](https://developer.android.com/reference/android/content/pm/PackageItemInfo#loadLabel(android.content.pm.PackageManager))

なお、パッケージ名はいくつか取得方法があると思いますがいつかよく使う、URLをブラウザで開くケースを載せておきます。

“`Case1.kt
override fun onCreate(savedInstanceState: Bundle?) {

元記事を表示

【Android】DataBindingのvariableはcamelCaseで書くのが無難

“`xml

“`
より、

“`xml

“`
のが困らないと思うっすという話。プチハマったので。

## 具体例
「被``ファイルでsnake_caseのvariableを使おうとしたらアクセスできなかった」

#### 書いてみるxml

“`child.xml




元記事を表示

【Kotlin】Firebase + CameraX でリアルタイム文字認識

Firebase ML Kit + CameraX でリアルタイム文字認識してBottomSheetに表示します。

#デモ

完成形はこんな感じです。

#おおまかな処理の流れ

カメラ起動

MLKitでリアルタイム文字認識

Bot

元記事を表示

CameraXとOpenCVを使った画像処理Androidアプリのひな形

# はじめに
Androidでカメラ画像を入力して、何らかの画像処理を行うためのサンプルプロジェクトです。

以前別の記事( [Androidで OpenCV 4を使う方法とカメラライブビューの表示](https://qiita.com/iwatake2222/items/2642669419fdaa20a8a6) )で、カメラ読み込みもOpenCVを使った方法を記載しましたが、最新のAndroid SDKだと使えないようでした。

Camera APIが廃止され、Camera2 APIを使うことが推奨されていましたが非常に使いづらいです。より簡単にAndroid上でカメラを触れるCameraXというものが存在しました。今回はこれを使ってみます。
CameraXは使い方が簡単で、チュートリアルも充実しています (https://developer.android.com/training/camerax ) 。ネット上のほとんどのサンプルがKotolin向けだったので、ここではJavaで書いてみようと思います。

今回は、入力画像と前フレームの画像との差分を計算して、変化したところが

元記事を表示

日本Androidの会浜松支部 第108回ミーティングでFlutter勉強会やるのでWindows10にFlutterの開発環境を整えた話

[日本Androidの会浜松支部 第108回ミーティング](https://jaghama.connpass.com/event/180670/)
でFlutter入門が開催されるので、Flutterの環境を整える。
こういったハンズオン系のイベントの場合、**あらかじめ環境を用意しておくと、セットアップだけで終わってしまって、本来イベントで学ぶべきことを学ばないで終わってしまう**というもったいない事態に陥ることが少ないです。
(これホント大事!)
環境構築で分からない場合は、事前に知ってる人に質問しましょう!

このドキュメントは前提として、開発経験があって、環境変数の設定とかできる人向け。
(初心者向けじゃないです)

あらかじめ、Androidの開発環境は整っています。
Android Studioの環境構築は他の人の記事を探してください。

やったことは以下のこと

– Flutterのダウンロード([公式サイト](https://flutter.dev/docs/get-started/install/windows)からダウンロード)
– Flutterのbinディレクト

元記事を表示

Android画面各部の名称

正しい呼び方を知らなかったので画面の各部の名称をまとめました。

出典は主に
[Androidデベロッパー|ユーザーインターフェースおよびナビゲーション](https://developer.android.com/guide/topics/ui)
[Material Design](https://material.io/design)
です。

# システムバー
通知の表示や、デバイスステータスの通信、デバイスの操作を行うための専用の画面領域。
システムバーはステータスバーとナビゲーションバーで構成される。
![alt](https://developer.android.com/images/training/system-ui.png?hl=ja)

## 1. ステータスバー
通知アイコンやシステムアイコンが表示される。

## 2. ナビゲーションバー
左から戻る、ホーム、タスクボタンが配置されている。
またAndroid9から2ボタンナビゲーション、Android10からジェスチャーナビゲーションが追加されたため3つボタンが表示されているとは限らない。

# トップアプリ

元記事を表示

Android + ViewPager2で特定のページ(ポジション)を最初に表示する

## 概要
ViewPager2を使ってカレンダーの実装をしていたのですが、みなさんもご存知だと思うのですがカレンダーは先の月だけではなく前の月もスクロールしたら見れますよね?
それを実装するためにはViewPagerで真ん中辺りのページを開く必要があったのでその方法を記載します。

## 試してだめだったこと

ViewPager2について調べてみると、currentItemなるものがあり、そちらが現在のItem(ページ)を示すみたいだったので、そこの値をかえればいいのでは?と思い

“`MainActivity.kt
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
super.onCreate(savedInstanceState)
/

元記事を表示

JKが接触確認アプリ「Cocoa」の開発に貢献した話。〜1日でXamarinを学びアプリ改善〜

こんにちは、あんはるです。
接触確認アプリ「Cocoa」の開発に貢献したこと、そして、簡単に開発に参加する方法を紹介します。