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

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

TEST

TEST

元記事を表示

[kotlin] ViewPagerをボタンで切り替える

#今回やること
これ↓

ViewPagerを使ってフラグメントの切り替えをスワイプとボタンでできるようにする。(kotlinで書きます) `OnPageChangeListener`を使います
※今回はViewPager実装済みとしてやっていくのでアダプターなどには触れません。まだ実装してないよという方はよろしければこちら参考に。

[[kotlin] ViewPagerでフラグメントを切り替える](https://qiita.com/YS-BETA/items/091a84961d5b56fced2b)

#ボタンを作成
レイアウトファイルにボタンを作る。

“`xml:activity_main

元記事を表示

[kotlin] ViewPagerでフラグメントを切り替える

#今回やること
ViewPagerを使ってフラグメントを切り替える。(簡単です!!、あとkotlinで書きます)

↑こんな感じ

#作るファイル
| ファイル名 | 内容|
|:—————–:|:——————:|
| MainActivity.kt | 以下のファイルを統合する|
| Sample1Fragment.kt| 表示するフラグメント1|
| Sample2Fragment.kt| 表示するフラグメント2|
| Sample3Fragment.kt| 表示するフラグメント3|
| SamplePagerAdapter.

元記事を表示

[Android / Kotlin / GoogleCast]AndroidアプリにGoogleCast(ChromeCast?)へ送信する機能をつける。

どうもこんばんわ。
冬休みの宿題めんどくさすぎてつらい。なんで保健で宿題だすの?

それとNexus 7(2013)にAndroid 10を入れてみました。
Resurrection RemixからcrDroidになりました。XDAまじ有能。

お正月は半分寝てます。もったいないね。

# 本題
Google Nest Miniを手に入れた(もらった)ので遊んでみます。
ニコニコ動画とか再生できねーかな。

# 参考にしました
https://qiita.com/tomo1139/items/fea907958160f77760ef
https://developers.google.com/cast/docs/android_sender/integrate

# 環境
|なまえ|あたい
|—|—|
|端末|Google Pixel 3 XL|
|Android Ver|Android 10|
|再生機器|Google Nest Mini|
|5ドル|払わない|

ChromeCast?の受信側をカスタマイズする場合は5ドル払う必要があるみたいですが、
今回はデフォルトのもの

元記事を表示

[Flutter] AppBundle を実機にインストールする

公式ドキュメントは [Build and release an Android app](https://flutter.dev/docs/deployment/android#test-the-app-bundle)。

## 1. [bundletool](https://formulae.brew.sh/formula/bundletool) のインストール
“`sh
brew install bundletool
“`

## 2. App Bundle の build + 実機へのインストール
build flavor による分岐も含めて、こんな感じでスクリプト化しています。

“`terminal
export KEY_STORE_PASS=XXX
export KEY_PASS=YYY
./scripts/install_aab.sh development
“`

“`scripts/install_aab.sh
#!/bin/sh

# 以下2つは、環境変数としてセットされていることを前提とする
# • KEY_STORE_PASS
# • KEY_PASS

元記事を表示

adb(コマンドライン)でlogcat(Androidのログ)を表示する

Android Studioのlogcatがデバイスを認識してくれずエラーログなどが一切見れない…(なにかアップデートしたのが原因か?)
Android StudioやSDKを再インストールしたものの直らず…
途方に暮れていたところ、adbからならlogcatを表示できることがわかったのでメモ。

# 前提
– OS:Win10
– adb.exeへパス通しされていること

# adbでlogcat表示
PowerShellなどから下記コマンド入力

“`
adb logcat
“`

このままだと有象無象のログが出てきて見づらいです。
下記のように書くとフィルタされます。

“`
adb logcat -s [フィルタしたい文字列]:[エラーレベル]
“`

– フィルタしたい文字列:flutter
– エラーレベル:指定なし
で絞りたい場合は下記。

“`
adb logcat -s flutter:*
“`

詳しくは参考サイト参照

# 参考
https://maku77.github.io/android/fil

元記事を表示

Roomの更新監視の方法3種類を比較してみた

# はじめに

まずこのような社員名簿アプリを想像します。

名前昇順に部署名と一緒に社員一覧が並んでいます。(名前は[Fakeit](https://github.com/moove-it/fakeit)で作成)
編集画面を開き保存を行うと、一覧画面で変更内容が反映されます。アプリを作っていればありがちな仕様だと思います。

実現方法としては編集画面から `書き換えた` という情報を持って一覧画面に戻ってきた時に一覧情報を再読み込みする作りが昔からよく行われていたと思います。しかし実プロダクトにおいては編集または閲覧できる画面が多くデータ同士の関係も複雑で、注意深く作らないと更新抜けが発生したりすることもあります。そこでそのような情報をSQLiteに格納して、Roomの[監視可能クエリ](https://develop

元記事を表示

Android Push通知のアイコンを作成 + 設定

#はじめに
Androidのプッシュ通知には、アイコンを設定する事が推奨されています。

が、
**「プッシュ通知用のアイコン、どうやって作るの?」**
**「そのアイコンはどうやって設定するの??」**

といった事が、[こちらの公式ドキュメント](https://developer.android.com/guide/topics/ui/notifiers/notifications?hl=ja)では非常にわかりにくかった・・・

なので、この記事でまとめることにする。

#プッシュ通知のアイコンを作成
[こちら](https://documentation.onesignal.com/docs/customize-notification-icons)より
>Android 5以降、OSは、アプリがAndroid API 21+をターゲットにしている場合、小さな通知アイコンをすべて白に強制します。正しいアイコンを作成しないと、ほとんどの場合、ステータスバーにベルまたは白一色のアイコンとして表示されます。

と書かれてある。

**つまり、通知バーに出てくるアイコンは白黒じゃ無いと

元記事を表示

OWASP Mobile Top10:Insecure Data Storage

# OWASP Mobile Top10
OWASPが公表されているモバイルアプリの脆弱性上位10位までを公表しています。
上位のM1~M10までがあります。

# 個人用翻訳メモ

![Insecure Data Storage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354810/2ca3ee2e-ba73-172a-25a3-85b75ea007f4.png)

# 自身の個人ブログ
[個人のポートフォリオ](https://techport.work/jp/)

元記事を表示

2011年製のタブレットにAndroid 8.1をインストールする

2019年の年末に断捨離をしていたら、2011年のGoogle I/OでもらったGalaxy Tab 10.1が出てきたので、こいつにAndroid 8.1をインストールしてみることにしました。

![IMG_20200101_172839.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/39529/0cd5b124-2b8d-7ef6-86c2-b2078569a949.jpeg)

2011年製ですから、当然Googleからは公式ROMなんてものは提供されてません。でもコミュニティレベルでは、まだまだ開発が続いているのです。

# 準備

Mac OSで作業をしましたが、WindowsでもLinuxでもできるはずです。

## 1. heimdallのインストール

SamsungのAndroidには、**リカバリーモード**の他に、**odinモード**と呼ばれるモードがあります。

odinモードはSamsung特有の機能のようで、元々Windows用にしかツールがなかったのですが、これをMacで

元記事を表示

React Native 事始め – 環境構築 Android

# はじめに
最近 React Nativeはじめました。React NativeはFacebookが提供しているマルチプラットフォームアプリケーションフレームワークです。React Nativeでは開発方法が以下の二種類に分かれます。

* React Nativeを用いた方法
* Expoを用いた方法

React Nativeは通常の開発と同様でiOSの場合はipa、Androidの場合はapkファイルを作成します。しかしExpoの場合は、expo.ioに配布されたアプリケーションを参照する事で機能が実現されます。

スクリーンショット 2019-12-29 12.23.51.png

今回はReact Nativeを用いた方法を行います。Mac PCで必要なツール、ライブラリをインストールして、Androi

元記事を表示

[HTMLのみ]ブラウザのformで次の入力欄にカーソル移動させる

# Androidで入力欄が連続していると面倒臭い
![Screenshot_20200102_104447_com.android.chrome.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/377322/2b06ab10-a733-211d-00a9-3375cd564857.jpeg)

会員登録のときとか、formに次々と情報を入れなければならないとき、***Androidにもタブキーが欲しい***と思うほど入力欄の移動が面倒臭い。

でもなんだか確定キー(Enterキー)の表示が変わってて、欄を移動できるときがある。
どうもIMEの違いではなさそうだ。GbordでもATOKでもShimejiでも移動できる。
ブラウザの違いでもない。ChromeでもFirefoxでもYahooブラウザでも移動できる。
ソースを開いてみるとjavascriptは埋め込まれてない。

…どういうことなの。

# 普通はカーソル移動できない

元記事を表示

Androidで進捗表示ができるまで

## 対象読者
– AndroidStudioの環境設定が終わり、Hello world! を出力できる人
– `MainActivity.java`とは何かを知っている人
– Javaを触ったことのある人
– AndroidStudioでラムダ式が使えること

# 進捗表示(作りたいやつ)
– 重たい処理をしている時に進捗をリアルタイムで確認したい

![loopOnOtherThread.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349189/f0830fac-9443-d002-58fa-acf0f521dc5b.gif)

## サンプルコード
– 簡単な例として、何らかの適当な処理を100回繰り返し、1回処理が終わるごとに進捗を1%増やすコードを作る
– ※この例での処理 `doSomeThing()` は0.01秒間スリープするだけ

“`java:MainActivity.java
// ボタンクリック時(関数: busyLoop()を呼び出す)
execBu

元記事を表示

Dagger/MissingBindingエラー

以下のようなエラーが出た

“`
エラー: [Dagger/MissingBinding] [dagger.android.AndroidInjector.inject(T)] jp.co.xxxxx.yyyy.data.repository.ZzzRepository cannot be provided without an @Provides-annotated method.
public abstract interface AppComponent extends dagger.android.AndroidInjector
 ・
 ・
 ・
“`

## 結論
対象repositryのBindsができていなかった。。。

“`
@Module(includes = [DataSourceModule::class])
interface RepositoryModule {
@Binds
fun bindZzzRepository(repository: ZzzDataRepository): ZzzRep

元記事を表示

Androidアプリのインストール数をGCPに自動収集させる

# はじめに
Androidアプリのインストール数をGCPのBigQueryに自動収集するようにしました。

これまで、Androidアプリのインストール数を確認するときは、Google Play Consoleを開き、アプリを選択し、レポートをcsv形式でダウンロードし、、、といった作業が必要でそれが面倒でした。:tired_face:

この面倒な作業をなくすために、Google Play から取得できるアプリのインストール数をGCPのBigQueryに毎日自動転送するよう設定した流れが以下の通りです。

# GCPのBigQueryにデータを格納する
1. Google Cloud PlatformのメニューからBigQueryを開く
スクリーンショット 2019-12-20 11.08.38.png

元記事を表示

10年ぶりのAndroidアプリ開発 (1)開発環境準備編

# はじめに
およそ10年ぶりにAndroidアプリを作ってみることにしたので、準備から(たどり着ければ)公開までを記事にしていきたいと思います。
私はAndroidのバージョンがまだ2の頃、少しだけアプリを作って遊んだことはありますが、その後はまったく触っていません。なので大まかなアプリの仕組みや開発の流れは分かっているつもりですが、Android Studioも触ったことがないし、Kotlinもまったく知りません。その他にも10年前と変わっていることはたくさんあると思いますので、そういった変化で戸惑ったところなど、紹介していければと思っています。

# 環境

– ホストPC: Ubuntu 18.04.3 LTS
– Android Studio: 3.5.3 for Linux 64-bit
– デバッグに使うデバイス: 主にSHARP SH-M08 (Android 9)

# Android Studioのインストール
[Android Studioのインストール](https://developer.android.com/studio/install?hl=ja)に従っ

元記事を表示

Realmのデータを確認するツール・ライブラリまとめ

Androidアプリの開発中、Realmに書き込んだデータを確認しようとしたのですが、
色々あってどれを使うかめちゃくちゃ迷ったので、調べたことをまとめておきます。
(間違いなどあればご指摘お願いします:pray:)

# Realm Studio
## 概要 :pencil:
* Realmが公式に提供している開発者ツール
* 公式ドキュメント: https://realm.io/docs/javascript/latest/#realm-studio
* 公式サイト: https://realm.io/products/realm-studio/
* `Realm Database`と`Realm Platform`を簡単に操作することができる
* 2017年10月頃にリリースされた
* Mac, Windows, Linuxに対応している

スクリーンショット 2020-01-01 17.45.26.pngAndroid端末のApplication directoryにアクセスする

Android端末において、data/data/の領域にアクセスするには、
root権限が必要。
user buildのSWがFlashされている場合など、root化されていない端末では、
debug時など不便だが、“`run-as“`コマンドを使用することで解決することができる。

“`command.java
adb shell
run-as // e.g. run-as com.android.sample
“`

※Linux環境で確認

元記事を表示

LIFFを更新してもAndroidでは反映されない問題に対処

# 概要
LIFF(LINE Front-end Framework)でとあるサービスを開発している際、ページ内容を更新しようとすると、Androidではキャッシュされしまい更新されなくなってしまった。
# 方法
LIFFのエンドポイントに適当なクエリパラメータを指定し、ページを更新するたびに値を変えれば良い。
## 例
スクリーンショット 2020-01-01 2.40.22.png
123を124とかに変更すると更新される。
# 余談
まともなLIFFのサービスってあるんですかね。知ってる人いたら教えてください。開発中って人も、

元記事を表示

busybox no rootをやろうとした話(2019版)

#Busyboxとは
Busyboxとは、いくつかのよく使うコマンドを一つのコマンドにまとめた便利つーる(スイスアーミーナイフ)です。これをAndroid Terminal Emulatorに久しぶりに入れてみようとした話です。
#Androidのセキュリティ
AndroidはLinuxと違い、一般ストレージにおいたファイルに実行権限をつけたりすることはできません。(スクリプトなどは動かせますが。)
そのため、elfなファイルを動かしたい場合、いくつか制約があります。

1. root権限や1000以下のポートを占拠することができない
2. いくつかのディレクトリが読み取り専用
3. フォルダ構造その他Androidはカスタムされているのでうまく動かない

そのため、うまくコマンドを実行させるにはビルドから行って、さらに設定なども細かく変える必要があります。
Busyboxはそこまでは必要ありません。すでにバイナリが用意されているからです。
https://forum.xda-developers.com/showthread.php?t=1929852
ここからAndroid arm

元記事を表示

OTHERカテゴリの最新記事