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

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

アイコンや背景画像の作成方法

■概要
 ・スマホ画面に配置する背景画像やアイコンの簡単な作成ノウハウです。
 ・私がAndroidアプリの画面設計を始めた当初(この方法を知らなかったため)、
  Google等からフリーのPNG画像を取得しておりましたが、ドンピシャの
  アイコンがなく、下記サイトから作成ノウハウを勉強させて頂いた次第です。
 ・参照サイト:https://powerpoint-univ.com/save-as-figure/
 ・作成例:私の記事(*)の、下の方のスクリーンショットをご参照下さい。
  (*)https://qiita.com/voibow/items/bf8c66efbcfe803d5053

■作成方法
 ・パワーポイント純正のアイコンを使います。以上!(笑)
  (私が使用しているPPTバージョン:PowerPoint2019)
 ・挿入>アイコン>好みのものを選択>挿入>適当な大きさにして右クリック>
  グラフィックスの書式設定>塗りつぶしや影などでお化粧>右クリック>
  図として保存>pngを選択>保存。 
   ※自由に切り貼り/重ね合わせをすれば、あなただけのア

元記事を表示

Unityエディタからadbコマンドの使える状態でコマンドプロンプトを開く

# 概要

UnityでMetaQuest2向けのVRアプリを作っているとき、`adb shell pm list package`や`adb uninstall com.DefaultCompany.TestApp`などのadbコマンドを使うことがあります。
しかし、adbコマンドをサクッと使うには、Android SDKのインストールは当然として、環境変数にパスを通す作業も必要です。(~~環境構築めんどくさい~~)

Android Build SupportのモジュールにはAndroid SDKが含まれているので、adb.exeがどこかにあるはずです。
これをうまく使っていい感じにできないでしょうか?

# 結論
以下のようなエディタ拡張を追加すると、`Window>Run Terminal (at android sdk path)`か、Ctrl+Tショートカットキーで、adbコマンドが使える状態でコマンドプロンプトを開きます。

“` C#
using System.Diagnostics;
using System.IO;
using UnityEditor;

publ

元記事を表示

DangerでAndroidのビルドワーニングをレポートするプラグインを作ったよ

Androidプロジェクトで
– Dangerを活用したPullRequestの静的解析
– Ktlintと連携したコードフォーマットのチェック
– AndroidLintのワーニングレポート

を実践している方は多いのではないでしょうか?

**しかし、ビルドワーニングは放置されていませんか?**

そこで、ビルドワーニング・エラーをDangerでインラインコメントするプラグインを作りました。
この記事では、このプラグインの使い方をご紹介します。

### danger-chikuwa
今回作成したDanger-pluginはこちらです。
https://github.com/watanavex/chikuwa

gemで公開しています。
https://rubygems.org/gems/danger-chikuwa

## 使い方 (GitHub Actions)

サンプルAndroidプロジェクト
https://github.com/watanavex/android-check-for-chikuwa

### GitHub Actionsのワークフロー

全体のサンプ

元記事を表示

【Flutter】アプリのアイコン画像をリサイズする方法

①プロジェクトフォルダ一覧から、resフォルダを見つける
②resフォルダをクリック>New>Image Assets

アイコン画像のPathを指定。
タブ左側のアジャストバーから、縮尺を変更できます。![Screenshot (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748997/343c668b-0220-4ce4-0912-129f9665f20b.png)

**Angela YuさんのUdemyサンプルプロジェクトの画像です。**

元記事を表示

WIP : AndroidでMotionLayoutを使う時の注意点()

結論
1. setTransitionListener()に設定するTransitionListenerの`onTransitionCompleted()`が発動されないこともある
他の
`onTransitionStarted()`
`onTransitionChange()`
`onTransitionTrigger()`
でも同じく発動されない可能性があると思っておくと安心。

2. MotionLayoutの配下の要素に`.animate()`でViewPropertyAnimatorを適用してそのアニメーションが終わると
MotionLayoutのTransitionが中断される。
回避策としてViewPropertyAnimatorに`.setListener()`で元々実行中だったTransitionを改めて実行させる処理を
`onAnimationEnd()`に入れたリスナーを設定してあげると最後までTransitionが行われる。

元記事を表示

BottomNavigationViewの戻る処理について

Android JetpackのNavigationコンポーネントを利用。
(確認したバージョンは、 2.4.2)

`NavigationBarView.setupWithNavController` を利用した場合の、タブ遷移後の戻るボタンの処理について確認した。

`android:menuCategory=”secondary”` の有無によって、動作が違う。

![Screenshot_20220611_165007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8708/2ac80358-eb92-3b84-34b3-ebfe5b615a7d.png)

例: Home -> Dashboard -> Notifications -> Dashboard と操作したあとに、back keyを押したとき。

## パターンA: menuCategory=”secondary” を指定した場合

“`xml

元記事を表示

【Android】Robolectric 4.8でshadowOfメソッドを使用した際に出るエラーの解決法

# はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、`Robolectric 4.8`で`shadowOf`メソッドを使用した際に出るコンパイルエラーの解決法を書いていきます。同じエラーでハマってる方に特に参考になれば光栄です。

それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 32
* minSdkVersion 21
* Robolectric 4.8

# エラー内容

`Robolectric 4.8`で、`Shadows.shadowOf`メソッドを使って`Shadow`インスタンスを生成する際に、以下のコンパイルエラーが発生します。

* `cannot access BackdropFrameRenderer`

* `class file for com.android.internal.policy.BackdropFrameRenderer not found`

つまり、**

元記事を表示

Samsung Galaxyの機器においてアプリの不具合を解消する方法

# Samsungの独自UIの問題について

https://dontkillmyapp.com/

に書いてある通りですが、Samsungを筆頭としたAndroidのベンダーは独自のユーザーインターフェースを用いてバッテリーの消費を最適化しています。

それ自体に問題は(あまり)ないのです。
Androidがオープンソースである以上、Androidの開発者達は、AndroidというベースOSが意図しない動作を上書きする場合はそれについての透明性をできるだけ確保するように各自ベンダーに求めています。まぁ透明性についてはいろいろありますが、その一つには、「Androidがネイティブでサポートしていない根幹にかかわる機能は、設定から容易に切る事ができる事」が入っている事は(OSSの理念上)当然だと考えられます。

つまりここでの問題は、Sansungは他者の用にバッテリーの消費を最適化しているが、そのルーティンの中にバックグラウンドのアプリの強制停止、データ通信の強制停止、最近では(バグの可能性もありますが)フォアグラウンドアプリの強制停止など、本来カーネルが行うべき挙動を対象とした実装が

元記事を表示

FlutterアプリをAndroid端末にインストールする時にハマった内容メモ

## はじめに
久しぶりにFlutterアプリを開発してAndroidで実機確認しようとした際に、上手くビルドできずに時間がかかってしまった。時間が経つと細かいところ忘れてしまうので、メモとしてハマったポイントを残しておく。

## 環境
【PC】
  MacBook Air (M1, 2020)

【各SWバージョン】
 ・macOS Big Sur 11.6.1
 ・Flutter 2.5.3 (dart 2.14.4)
 ・Xcode 13.1

## メモ内容

Android実機にインストールするため`flutter build apk`を実行するがエラー

“`terminal:
* What went wrong:
Execution failed for task ‘:app:checkReleaseAarMetadata’.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> The minCompil

元記事を表示

【Android】ボタンの上下左右に画像を動的に配置する

# リソースIDによる配置
不要な箇所は“`0“`を入れる

“`Kotlin
binding.button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.image_left, R.drawable.image_top, R.drawable.image_right, R.drawable.image_bottom)
“`

# Drawableによる配置

不要な箇所は“`null“`を入れる
“`Kotlin
val imageLeft:Drawable = //省略
val imageTop:Drawable = //省略
val imageRight:Drawable = //省略
val imageBottom:Drawable = //省略

binding.button.setCompoundDrawablesWithIntrinsicBounds( imageLeft, imageTop, imageRight, imageBottom)
“`

元記事を表示

Android で日付の言語および、24時間表示対応

Android で日付や時刻を表示する際の、言語設定や24時間表示設定への対応方法をまとめます。

対応は簡単で、[DateUtils](https://developer.android.com/reference/android/text/format/DateUtils) を使うだけです。
“`kotlin
val date = DateUtils.formatDateTime(
this,
System.currentTimeMillis(),
FORMAT_SHOW_YEAR or
FORMAT_SHOW_DATE or
FORMAT_SHOW_WEEKDAY or
FORMAT_SHOW_TIME
)
“`

上記の場合は、西暦、日付、曜日、時刻の文字列を生成しています。
こうすることで、下記のように文字列が生成されます。

| 言語設定 |

元記事を表示

Android Studio Chipmunkにアップデートした後にGitのDiffで困った話

# Android Studio上でGitのDiffが使用できない!!

大げさに書いちゃいましたが本当にコードレビューがやりにくくなって困りました。
具体的にはDiffを使用すると以下のようなエラーが表示されます。

java.lang.Throwable: Assertion failed
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:218)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:227)
at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.(TextEditorComponent.java:76)
at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorC

元記事を表示

AndroidからPCへタップ座標値をUDPで送信(複数のタップアイコンを制御する)

■プログラムの概要
 ・前回投稿(*)の改良版です。複数のタップアイコンを選択的に制御できるように
  しました。但し、同時制御(マルチタップ)ではありませんので、ご注意ください。
  (*)https://qiita.com/voibow/items/e64ca603d84cb4ba5534
 ・用途:電子楽器。※YouTube動画リンク先:**https://youtu.be/_rWSoXfOAH0**

■Android側のプログラムのソースコード
 (補足)各種アイコン(glitter_icon.png等)や背景画像(bg.jpg)は、pptで作成。
“`java:activity_main.xml

【Zoom Video SDK】初心者による導入メモ – Android/Kotlin編

https://qiita.com/official-events/86d8555146e1b14fef24

この記事は[【Zoom Video SDK】初心者による導入メモ – iOS/Swift編](https://qiita.com/yuppejp/items/838e1becfc2774bd4e85)に続くAndroid/Kotlin編です。
Swift編ではZoom Video SDKが初見だったので初心者すぎて詰まりまくりでしたが、現在はSwiftUI版をもくもく実装中です。複数人のグループ会話を実装する上で、iOSだとシミュレータでカメラが使えなくてテストが捗らないので、Androidのシミュレータで端末数を確保しようと思い、今回はAndroid(Kotlin)でZoom Video SDKを入門したいと思います。

# 完成イメージ
[前回](https://qiita.com/yuppejp/items/838e1becfc2774bd4e85)と同様に自分と相手の二人でビデオ会話できるシンプルなアプリです。
![image.png](https://qiita-i

元記事を表示

Intellij IdeaからJetpack Composeを使ってみる

初投稿です。

# Jetpack Compose

[Jetpack Compose](https://developer.android.com/jetpack/compose) が2021年7月に正式リリースになりました。公式サイトによると
– XMLを使う煩雑さの軽減
– 宣言型UI(UIの構築だけでいい感じによしなにしてくれる)
– KotlinだからAPIを直接呼べる

とかを売りにする

>ネイティブ UI をビルドするための Android の最新ツールキット

なんだそうです。
しかも聞くところによるとマルチスレッドにいい感じに対応して、
UIの更新が必要なら非常に ~~変態的な~~ 高度な実装により更新を必要とする部分だけ再描画するそうで。
未来を感じる技術です。イヤータノシソウダナー

..

>2021年7月に正式リリース

_人人人人人人人_
> 2021年7月 <
 ̄Y^Y^Y^Y^Y^Y ̄

### 出遅れました

約一年遅れです。忙しかったんです。

それでやっとこの度試しに使ってみることしたのですが、~~GoogleのAndroid St

元記事を表示

Google I/O 2022の自分的まとめ(Keynote, Developer Keynote)

# 序文
今年のGoogle I/O 2022について自分なりのメモをまとめてましたが、改めて読み返すと色々書いてたので公開しておこうかなと思います。

# キーノート
## 所感
去年に引き続き機械学習の発展が大きいのと、セキュリティの話が多かった

## キーノートまとめ
* Googleのミッションについて
* Organize the world’s information and make it universally accessible and useful
* 世界中の情報を整理し、普遍的にアクセス可能で有用なものにする
* 改めて冒頭でGoogleのミッションを伝え、
* 情報への理解を深めて知識に変えること
* どこからでも/誰でも簡単に知識にアクセスできるようにコンピュータを進化させること
* の2つの要素についてGooleの製品がどのようにそれを支援しているのかという枠組みで紹介するとのこと
* 時事問題について
* 今年はコロナとウクライナ問題を併記
* コロナ一色だった2021年

元記事を表示

コルーチンとチャネル入門#5

ソース記事は[こちら](https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/05_Concurrency)
# 並列性
Kotlinのコルーチンはスレッドと比較して非常に安価である。新しく計算を非同期で始めたいときは常に、新しいコルーチンを作ることができる。
新しいコルーチンを開始するためには、主な「コルーチンビルダー」、つまり`launch`か`async`か`runBlocking`のいずれか一つを使う。
`async`は新しいコルーチンを開始し、`Deferred`オブジェクトを返却する。`Deferred`は`Future`や`Promise`のような他の名前で知られる概念を表す。つまり、計算を格納するが、最終的な結果を得る時は`遅延`する。それはいつか `将来`に結果を`約束`する。
`async`と`launch`の主な違いは、`launch`が特定の結果を戻すことを期待していない計算を開始するために使うということである。`launch`は`Job`を返却し

元記事を表示

Flutter Admobのデモ広告 (バナー)を表示させるまでの設定

## はじめに
久々にFlutterアプリを作り`Admob`を使おうとしたのだが、過去にも使ったことがあるのに少し時間がかかってしまった。
基本的には毎回ググるのでも問題ないのだが、毎回探すの少し面倒なので自分用メモとして端的に手順だけメモする。

## 環境
【PC】
  MacBook Air (M1, 2020)

【各SWバージョン】
 ・macOS Big Sur 11.6.1
 ・Flutter 2.5.3 (dart 2.14.4)
 ・Xcode 13.1
 ・google_mobile_ads: ^1.0.1

## メモ内容

### ① 必要パッケージのインストール

pubspec.yaml に`google_mobile_ads`を追記。

“`yaml:pubspec.yaml
dependencies:
flutter:
sdk: flutter
google_mobile_ads: ^1.0.1
“`

ターミナルで `flutter pub get` を実行

### ② Admob のサイトでアプリを追加する

 https:

元記事を表示

【Flutter】タブのある画面にタブのページを指定して遷移する

# 実現したいこと
Flutterにおいてタブのある画面に遷移したとき、基本的には最初のタブが開いていると思いますが、場合によっては任意のタブを指定して画面遷移したい場合があると思います。

このような場合の実装方法について解説します。

## 自分の環境
macOS Monterey 12.2.1(21D62)
Flutter 2.8.1
Dart SDK version: 2.15.1 (stable)
VSCode 1.67.2

# タブ画面の実装
現在のタブのページを保持する必要があるため、ステートフルな画面である必要があります。

詳細は以下公式ドキュメントなどを参考にしてください。(ドキュメントはステートレスなのでステートフルに書き換えること)
https://docs.flutter.dev/cookbook/design/tabs

※すでにステートフルなタブの画面が実装されている方は **「タブを指定できるようにする」** に飛んでください。

[実装イメージ]
![image.png](https://qiita-image-store.s3.ap-northea

元記事を表示

Kali Linux2022.1 でハッキングラボをつくってみる13 Androidx86 v.7へのハッキング Metasploitのセッション確立まで

# はじめに
「ハッキング・ラボのつくりかた」の特典「Androidのハッキング」を参考に、kaliLinux2022.1で検証した記事です。

:::note alert
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
:::

# ダウンロード
[Androidx86 v7.1のダウンロードページ](https://www.fosshub.com/Android-x86-old.html)
ちなみに、最新版はv9.0です。
なお。OSのインストール方法と初期設定については、省略しますが、少し気になったところにだけ触れておきます。
仮想マシンの設定項目「ディスプレイ」の「グラフィックコントローラー」の値を「VBoxVGA」に、「アクセラレーション」の値を「3D」にしてください。
やり方は、androidx86の仮想マシンの「設定」

元記事を表示

OTHERカテゴリの最新記事