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

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

Ubuntu18.04にAndroid Studio4系を入れる

Android Studioは公式サイトから落としてきて展開しても良いが、面倒。

“`
snap install android-studio –classic
“`
と`snap`を使うとすんなり入り、`android-studio`コマンドで起動できる。

別途、Androidのエミュレータ起動のために関連ライブラリを入れた上で、kvmへのパーミッションが通るようにしたらok。

“`
sudo apt install qemu-kvm -y
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
“`
自分の環境では、PC再起動で反映された。

元記事を表示

11. 【Android/Kotlin】Toast

#はじめに
DreamHanksのMOONです。

前回はライブラリを追加する方法について説明しました。
[10. 【Android/Kotlin】ライブラリを追加](https://qiita.com/DreamHanks/items/b0326a6ede9c801a7137)

今回は`Toast`という通知メッセージについて説明していきます。

#Toastとは
Toastはみんなさんが考えている`トーストパン`の意味と同じです。
トースト機器でトーストが完成すると飛び出るようなものだという意味で、
通知メッセージが画面に現れることを意味します。

今回はこのテキストを入力し、Toastメッセージにテキストを表示していきます。

#Toast追加

・Activityを作成

“`kotlin:ToastActivity.kt
package com.example.practiceapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androi

元記事を表示

Android: YouTube Android Player API

– Android Studio 4.0.1
– Kotlin 1.4.0
– YouTube Android Player API 1.2.2

YouTube Android Player APIを使って、AndroidアプリでYoutubeを再生させます。

## Android Studioでプロジェクト作成

## アプリの登録

Google APIsでAPIキーを作成し、Androidのプロジェクトと関連付けます。

### Android Studioでプロジェクト作成

プロジェクトを作成し、パッケージ名を決めます。

### アプリのフィンガープリント取得

SHA-1のフィンガープリント取得方法

– AndroidStudioで、Gradleタブの「app/Tasks/android/signingReport」をダブルクリック
– Runコンソールに出力される

### Googleプロジェクト作成
https://console.developers.google.com/cloud-resource-manager

既存のプロジェクトを利用してもい

元記事を表示

Dagger Hiltを踏まえたテストのプラクティス

Dagger HiltというGoogleがAndroid開発において推奨するDIライブラリ(JVM言語であれば使える)のこちらのドキュメントについてです。
https://dagger.dev/hilt/testing-philosophy
結構良いテストについて個人的に刺さる概念があったので、書いておきます。
またシンプルな部分以外のHiltの良いところが分かる気がします。

Dagger Hiltを踏まえたテストのプラクティスについて書かれている。
Dagger HiltのAPIや機能は何が良いテストを作るかの暗黙の哲学に基づいて作られている。ただ、良いテストというのが万人に受け入れられているわけではいので、Hiltチームにおいてのテストの哲学を明らかにするためのドキュメントとなる。

### 何をテストするのか
Hiltは外部の”**ユーザーからの観点でテスト**する”ことを推奨する。外部のユーザーとはたくさんの意味がある。本当のユーザーも指すし、クラスやAPIの利用者も指す。
大切なところは”実装の詳細を表現してはいけない”ということ。内部の実装に依存したテスト、例え

元記事を表示

【Android】Android 11から始めるWireless Debugging

# Wireless Debugging
Android11からadbを介したワイヤレスでのアプリの**デプロイ**と**デバッグ**が可能になりました。
そのためUSB接続の必要がなくなりリモートで複数のデバイスにアプリにデプロイがしやすくなりました。

wireless-adb.png

# 設定方法

1. AndroidStudioにSDK Platform-Toolsの最新版をインストールする(※30.0.4では確認済み)
2. デバッグで利用する端末でDeveloper OptionsをONにする
3. Wireless debuggingをONにする
4. 表示されるダイアログ内の**許可**を選択する
5. **Pair device with pairing code**を選択する
6. 表示

元記事を表示

Dagger Hilt: Deep Diveのメモ

近々Dagger Hiltについて話す機会があるので、少し調べています。
また、最近のGoogleの動画からいろいろインプットしていっています。
Deep Diveですが初心者にも分かりやすいのではと思いました。1時間半ある動画でしたが、かなり気になるところを色々話してくれています。個人的にDaggerの説明でよく使われるCoffeeShopの例よりも100倍分かりやすい例えで説明してくれているので、ぜひ見てみてください!

# なぜDependency Injection?

#### データーベースなどがハードコードされている例

“`kotlin
class MusicPlayer {
private val db = SQLiteDatabase()
private val codecs = listOf(CodecH264(), CodecFLAC())
fun play(id: String) { … }
}
fun main() {
val player = M

元記事を表示

アプリ開発でSwagger定義があるならPrismを使おう

スマホアプリの開発でバックエンドの人がSwagger定義(Open API Specともいう)を使ってくれてたらPrism使ったら良いよ、というお話。

# Prismとは
https://stoplight.io/open-source/prism/

– Stoplightという会社が作っている。APIの開発をスムーズに進めていくためのツールを色々提供している。
– Prismはそのツールのうちの1つで、いわゆるモックサーバー。OSSとして提供されている。
– 別のサービスだと本家のSwagger UIもレスポンスをモックすることができるし、API Sproutなんかもある。

# インストール&使い方
“`
$ npm install -g @stoplight/prism-cli
$ prism mock swagger.yaml
“`
これだけ。簡単。デフォルトで`127.0.0.1:4010`のポートを使い、読み込んでいたswagger定義ファイルを更新すると自動でリロードもしてくれる。(これがSwagger UIのモックサーバには無い)

# レスポンスのカスタマイズ

元記事を表示

10. 【Android/Kotlin】Toast

#はじめに
DreamHanksのMOONです。

前回は動的にViewを追加する方法について説明しました。
[9. 【Android/Kotlin】動的にViewを追加](https://qiita.com/DreamHanks/items/7f2449b01aabf3fe42c7)

今回はライブラリを追加する方法について説明していきます。

#ライブラリを追加する方法
Android Studioにはライブラリを追加する方法が三つがあります。
 1.jarファイルをlibsフォルダに貼り付ける
 2.Project Structureを利用する
 3.gradleに直接経路を書き込む

今回はライブラリ一つを上記の方法で追加していきます。

###1.jarファイルをlibsフォルダに貼り付ける
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/708649/c96a4ade-528f-7f4d-75e9-97994f0de0ce.png)
①jarファイルをプロジェクトの「app/libs」

元記事を表示

[Android/Kotlin]コードからtextViewに取り消し線を付ける

# 結論
“`kotlin:kotlin
textView.paint.flags = textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG // 打ち消し線
“`

“`xml:xml

“`

`textView.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG`だけだとアンチエイリアスが切れてギザギザになる

アンチエイリアスは別途指定し直しても良さそう

“`kotlin:kotlin
textView.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG // 打ち消し線
textView.paint.isAntiAlias = true // アンチエイリアス
“`

`paint.flags`は`paintFlags`でもいいらしい

“`kotlin:kotlin
textView.paintFlags = textView.paintFlags or Paint

元記事を表示

[Android/Kotlin]コードから背景色を変更する

## 結論
“`kotlin
val view: View = findViewById(R.id.constraint)
val backgroundColor = getDrawable(R.color.colorAccent)
view.background = backgroundColor
“`

## 全体
“`kotlin:MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val constraint: View = findViewById(R.id.constraint)
val backgroundColor = getDrawable(R.color.colorAccent

元記事を表示

プロキシツールmitmproxyで、httprequest・httpresponseの内容をチェックする

ソフトウェア開発でhttpリクエストを送ることはよくあると思うが、その中身をチェック・デバッグするにはどうするか。

もちろん開発しているツールで中身を見てもいいし、ログを仕込んでもいいと思うが、場合によっては少し手間がかかったりもするしリアルタイムで把握しづらかったりもする。

通信の間にプロキシを介在させればHttpリクエスト、レスポンスの中身がプロクシにより取得できるので便利である。

色々とツールはあるが無料で機能が豊富なmitmproxyを使う。これをmac上で動かし、別のiOSデバイス(iPhoneなど)からインターネットへのアクセスを仲介してみる。実際に試してみたが、手軽に素早くリクエスト・レスポンスをチェックできるため、デバッグの速度が上がり何よりストレスが減った。1

他のツールを探したい場合 -> [アプリのAPIリクエストのトレースはどうするのが効率的か?](https://techblog.zozo.com/entry/ios_api_request_trace)

### インストール

Homebrewというツールを使いインストールする。

“`
brew

元記事を表示

【Android】ContentResolverのinsertがnullになる場合

# ContentResolverのinsertがnullになる
そのファイルが存在しているのにinsertをかけようとすると返り値がnullになります。

“`
val values = ContentValues().apply{
put(MediaStore.Images.Media.DISPLAY_NAME, “hoge.jpg”)
put(MediaStore.Images.Media.RELATIVE_PATH, “Pictures/fuga”)
put(MediaStore.Images.Media.MIME_TYPE, “image/jpg”)
}
val uri = contentResolver.insert(
MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY),
values
)
Log.d(“log”,uri.toString())

2020-09-19 22:23:48.688 29801-29801/com.exa

元記事を表示

Cordova開発環境をWindows10 + AndroidとMac + iOSでそれぞれ構築

# Cordovaのインストール(共通)

Windows、Macともに共通で実施します。

npmが必要なので事前に入れておきます。
私はWindowsならnodist、MacならnodebrewでNode.js環境を作りました。

Cordova公式サイトの「[Get Started](https://cordova.apache.org/#getstarted)」に沿って進めます。

“`
> npm install -g cordova

> cordova –version
10.0.0

> cordova create MyApp
Creating a new cordova project.

> cd MyApp
“`

## Cordovaアプリをブラウザで動かす

プラットフォーム(Cordovaの実行環境)を追加して動かしてみます。
まずはブラウザで動かします。

“`
> cordova platform add browser
Using cordova-fetch for cordova-browser@^6.0.0
Adding browser

元記事を表示

9. 【Android/Kotlin】動的にViewを追加

#はじめに
DreamHanksのMOONです。

前回は`WebView`というViewについて説明しました。
[8. 【Android/Kotlin】ウェブビュー(WebView)](https://qiita.com/DreamHanks/items/25a41d79d8a58db11f80)

今回は動的にViewを追加する方法について説明していきます。

#動的に追加の意味
以前まではViewやレイアウトを追加するためにレイアウトのxmlファイルに追加しましたが、
その方法は静的に追加する方法です。

例)チャットアプリで会話内容が追加されると、画面上にテキストを追加しなければならない状況があります。

動的にViewを追加する方法はActivityからViewを追加することです。

今回はテキストを入力し、そのテキストを画面上に動的に追加して表示していきます。

#ActivityからViewを追加
・レイアウトのxmlを作成

![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7086

元記事を表示

[覚え書き]AndroidにWindowsからadbコマンドで接続する

FireHD10のLauncherをAmazon謹製からNovaLauncherに変更するためにadbコマンドに関して調べたメモ。

# Android SDKツールを入手する
## ダウンロード
公式サイトからWindows向け「Android SDKプラットフォームツール」をダウンロードする。
[SDK Platform-Tools リリースノート  |  Android デベロッパー  |  Android Developers](https://developer.android.com/studio/releases/platform-tools)
## 任意の場所に解凍する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223848/526cbdd7-6fc8-2e60-dcda-466a1173b963.png)
# コマンドプロンプトから操作する
操作するAndroid側は開発者モードになってUSBデバッグを有効にしておきます。

元記事を表示

UnityPlugin/Android/基本

#[環境]
OS: windows10 pro
IDE:Android Studio4.0.1
Unity 2019.4.5f1
確認した実機: Galaxys8

#[参考]

[Android用Plugin(java[aar])の作成(https://qiita.com/fukaken5050/items/c9ac144344c5f6ff9f57)

Android Studio3系でUnity用のAndroidプラグインを作成する


https://qiita.com/okuhiiro/items/1aaec487d1ab8b086095

https://note.com/attomicgm/n/ncb22f460e8b6

https://baba-s.hatenablog.com/entry/2018/09/18/170000 確認済

# 本文

# UnityでAndroidProjectを出力する

・適当にCUBE等を配置する。
・Unit

元記事を表示

8. 【Android/Kotlin】ウェブビュー(WebView)

#はじめに
DreamHanksのMOONです。

前回は簡単なログイン画面を作り、バリデーションチェックをしました。
[7. 【Android/Kotlin】バリデーションチェック](https://qiita.com/DreamHanks/items/81511dae61cc9c4a7e63)

今回は`WebView`というViewについて説明していきます。

#WebViewとは
ウェブ アプリケーション(またはウェブページ)をクライアント アプリケーションの一部として提供する場合は、WebView を使用できます。
この意味は簡単にアプリの画面上にウェブページを表示することができます。

#WebView追加

###1.権限設定
ウェブビューでウェブページを表示するためには、まず、そのアプリのインターネットアクセス権限を設定する必要があります。
 ・AndroidManifestファイル修正

“`xml:AndroidManifest.xml

ContextからStartActivityする際の注意

以前KudanARライブラリを使用したKudanARアプリをリリースしました。
[Xamarin.FormsでKudan ARを試してみる](https://qiita.com/takapi_cs/items/581654f38ddb06a8e81c)

そのアプリのテスト環境として使用していたAndroid8.0では発生しなかったが、Android9.0だと発生するエラーがありました。
少し調査したので軽くまとめたいと思います。

# 先に結論
Contextの実体には`Application Context`、`Activity Context`があります。
実体を把握した上で使用しよう。

# 現象
まずは、下記が確認できたエラーメッセージの内容です。

“`
Android.Util.AndroidRuntimeException: ‘Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really

元記事を表示

【スマホアプリでグラフ】MPAndroidChartまとめ

#MPAndroidChartとは?
MPAndroidChartとは、Philipp Jahoda氏作成の、**Andoroidでグラフを作るためのライブラリ**です。
Andoridアプリにおけるグラフ描画の、デファクトスタンダードとも言える存在となっています。
(下の図は、本ライブラリを使用して私が作成したグラフの一例です。日なたの気温が凶悪ですね‥)
![Temerature.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/065d4078-fe02-1955-6a8e-e0aa6b37d0b2.png)

また、**[iOS版のCharts](https://github.com/danielgindi/Charts)**ライブラリも存在し、こちらも広く開発に使われています。

[公式GitHub](https://github.com/PhilJay/MPAndroidChart)のAboutには

`A powerful ? Android chart view / grap

元記事を表示

Google認証

公式ドキュメントに沿って進めていく↓
[Android で Google ログインを使用して認証する]
(https://firebase.google.com/docs/auth/android/google-signin?hl=ja)

SHA証明書フィンガープリント作成↓
[Authenticating Your Client](https://developers.google.com/android/guides/client-auth)

“`
% keytool -exportcert -alias androiddebugkey -keys
No Java runtime present, requesting install.
“`

javaが入っていなければインストール↓

[MacOS JDKのインストール方法](https://maysatsuki.com/mac/jdk/90)

AndroidアプリへのGoogleログインの統合↓
[Integrating Google Sign-In into Your Android App]
(https://

元記事を表示

OTHERカテゴリの最新記事