- 1. Androidのセキュリティ的な雑談(FRP)
- 2. AndroidStudio内のリソースファイルの置き場と利用方法
- 3. Jetpack ComposeでTabにバッジをつける方法
- 4. (初心者向け)AndroidStudioを使ってギャラリーアプリを作る
- 5. 【AndroidStudio】KotlinでToolBarに検索欄を作りたい
- 6. Jetpack Composeのbuild.gradleをKotlin 1.7.10に対応させる。
- 7. Android の ANR の解析方法
- 8. 【Flutter】tutorial_coach_mark の使い方
- 9. android でLAN内のNTPサーバーに時刻を合わせる
- 10. Baseline Profilesでアプリのパフォーマンスを向上させよう
- 11. Android ViewModelとDataBindingを使ってみた
- 12. Android StudioのNetwork Inspectorが文字化け
- 13. アジャイル開発とは何か?
- 14. Tinkerboard 2S Android11導入
- 15. 未経験Androidエンジニアの1年を振り返る
- 16. jetpack composeでviewModelのデータを監視する
- 17. vistaでandroid studio その18
- 18. vistaでandroid studio その17
- 19. メモ:Android 12(API Level 31)で通知のアプリアイコンをタップしてもアプリが起動しない現象について
- 20. flutterにUnityを組み込むflutter unity widgetの使い方
Androidのセキュリティ的な雑談(FRP)
初投稿です、よろしくお願いします。
-Factory Reset Protection-
Googleのシステムが入っているならほとんどの端末で有効になるセキュリティ機能
ヤ〇オクなどではアカウント残りなどとも呼ばれている。Googleアカウントを残したまま初期化すると、残したアカウントにログインしないと初期設定が進まない設計になっている。
ただ、
・(一定バージョンまでは)あくまでパスロックがかかっていない初期化後のため、
所定の方法を踏めば回避可能・仕組み自体を悪用されやすい
(別ルートでGアカウントを設定したりAndroid 9から採用されたPINロックで解除を悪用するなど)とかなり緩く作られている。(各社ベンダー任せ?)
対してAppleのIOS搭載端末では、知る限り本体のみでプログラムやUIの抜け穴を用いて解除されたということは聞かない。
Android端末のメーカーもO〇poやXi〇omi、H〇aweiなどは独自のリカバリなどを用いて
パスコードが不明な場合の初期化を封じたり、初期設定時に独自IDにログインしろとする場合がある。気になるであろう国内メ
AndroidStudio内のリソースファイルの置き場と利用方法
# はじめに
Androidエンジニアとして初心者だった頃に、取り込んだ画像の置き場所がわからない
文字列を入力する場所ってどこだっけ?
となった経験があることを思い出したので、それぞれのリソースファイルの置き場所とそれの使い方等を表にして記事に残そうと思います。# 表
|フォルダ|説明|利用例|
|:—|:—|:—|
|/res/values/|色(Color)|R.color.red|
||色(ColorDrawable)|R.drawable.red|
||寸法|R.dimen.one_pixel|
||テーマ 又は、スタイル|R.style.Theme_CommonTheme|
||文字列|R.string.text|
|/res/drawable/|Bitmap(.bmp)、JPEG(.jpg)、PNG(.png)、GIF(.gif)|R.drawable.gazou|
|/res/layout/|レイアウト|R.layout.main_layout|
|/res/anim/|アニメーション|R.anim.spin|
|/res/raw/|バイナリ|R.ra
Jetpack ComposeでTabにバッジをつける方法
今回はJetpack ComposeでTabにバッジをつける方法です
未読のお知らせ等があるときにタブにバッジを表示させたいことがあると思います。
実装方法です。
# androidx.compose.materialの導入
[androidx.compose.material](https://developer.android.com/jetpack/androidx/releases/compose-material?hl=ja)
を導入します。“`
dependencies {
implementation “androidx.compose.material:material:${latest.version}”
}
“`androidx.compose.materialを導入すると“BadgedBox“や“Badge“を使用することができ、こちらを使用してバッジを実装していきます。
# バッジの実装
表示するタブのアイコンと、表示するテキストのデータを作っておきます。
“` Screen.kt
val tabData = listOf
(初心者向け)AndroidStudioを使ってギャラリーアプリを作る
### 環境
– Windows10 21H2
– Android Studio Chipmunk | 2021.2.1 Patch 1### 使用するライブラリ
– [glide](https://github.com/bumptech/glide) 4.13.2今回は Java を使用して簡易的なギャラリーアプリを作っていきます。
完成するとこのようになります。
\*記事中でこの部分が間違っているやこの方法の方が良いという部分がありましたら教えていただけると幸いです。
それでは始めましょう!
## 下準備
まずは、マニフェストファイルに`【AndroidStudio】KotlinでToolBarに検索欄を作りたい やりたいことはタイトルの通りToolBarに検索欄をつけたかったので,その方法について載せる.
# 完成イメージ
上の画像のように検索アイコンがあり,アイコンをタップすると下の画像のように文字入力ができるようになる
![2022-09-11 (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2671458/dcd6243c-1707-fe0c-f7f1-60e7c660d3ac.png)
![2022-09-11 (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2671458/11fb444e-a123-4662-b4de-fd8b3078c606.png)# ToolBarを追加する
まずはToolBarを表示させたいレイアウトにToolBarを追加する
“`xml:activity_main.xml
Jetpack Composeのbuild.gradleをKotlin 1.7.10に対応させる。
業務でSwiftUIを1年半ほど触っていたのですが、最近Jetpack Composeに触り始めて、そのCodelabの充実とモジュールの柔軟さに衝撃を受けております。
# Firebaseを使いたい
趣味で開発しているアプリのデータベースにFirebaseを使いたいなと思い、調べていたところ、Firebaseから素晴らしい[公式のサンプルプロジェクト](https://firebase.blog/posts/2022/04/building-an-app-android-jetpack-compose-firebase)が出ていました。こちらを写経しつつ自分のアプリに組み込もうとしていたら、ビルドで詰まりました。# エラー内容
どうやらどこかのmetaデータのKotlinバージョンと実際のバージョンが合っていない模様。“`kotlin
/Users/(username)/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.7.0/(hash)/kotlin-stdli
Android の ANR の解析方法
Android アプリで [ANR](https://developer.android.com/topic/performance/vitals/anr?hl=ja) が発生した際の解析方法をメモします。
ANR の解析には [Bugreport](https://developer.android.com/studio/debug/bug-report?hl=ja) を使用します。
“`
adb bugreport
“`bugreport コマンドを実行すると、下記のような zip ファイルが生成されます。
“`
bugreport-sdk_phone_x86-RSR1.210210.001.A1-2022-09-10-15-05-50.zip
“`zip ファイルを解凍すると、下記のファイルが生成されています。
“`
bugreport-sdk_phone_x86-RSR1.210210.001.A1-2022-09-10-15-05-50/FS/data/anr/anr_2022-09-10-15-05-30-781
“`
※ファイル名は ANR が発生し
【Flutter】tutorial_coach_mark の使い方
## 初めに
tutorial_coach_mark とは、以下のように、特定の Widget にフォーカスして、ユーザにアプリの操作方法を理解してもらうためのチュートリアルを作成するパッケージです。
[公式ページ](https://pub.dev/packages/tutorial_coach_mark)から引用## 記事の対象者
+ アプリにチュートリアルを実装したい方
+ 操作が難しいアプリを開発している方
+ アプリに対して「操作がわかりにくい」とフィードバックがあった方## 準備
### パッケージの追加
まずは[ tutorial_coach_mark パッケージ ](https://pub.dev/packages/tutorial_coach_mark/install)を「 pubspeck.yam
android でLAN内のNTPサーバーに時刻を合わせる
# はじめに
時計大事ですよね。
私の持っているandroidはWifi専用運用のため、時刻を合わせることができず、困っておりました。
SIMがささっていれば、携帯基地局から時刻を取得することができるようなのですが、SIMすらないので、簡単に時刻がズレてしまいます。
root化するという手もあるかもしれませんが、あまりやりたくはないです。
これを何とかしようとGoogleさんに色々が聞いてみましたが、かなりハマったので、記録しておこうと思います。# 環境
* Pixel 5a(SIMフリー版)
* Android 12
* SIMカードなし・Wifi接続のみ
* LAN外のNTPサーバーは参照不可# DNSサーバーをLAN内にたてる方法(失敗)
Googleで「android ntp time sync」とかで調べると、どうも簡単には時刻同期できないということがすぐに分かりました。
もう少し調べてみると、情報としては古いですが、Android 4.1以降では、2.android.pool.ntp.orgにNTPサーバーがハードコーディングされているという情
Baseline Profilesでアプリのパフォーマンスを向上させよう
以前 LT で発表した記事のテキスト化 & 補足です。
https://speakerdeck.com/numeroanddev/improve-app-performance-with-baseline-profiles
Baseline Profiles はアプリのパフォーマンス改善を見込めるものになっているので、ぜひ検証 & 導入を進めていきたいですね。
## Baseline Profiles とは?
– ART (Android Runtime) がプリコンパイルするときに使用するアプリのクラスとメソッドのリスト
– Baseline Profiles を使うことでアプリの起動時間の短縮、ジャンクの削減、全体的なパフォーマンスの向上が見込める
– Android 7.0 ~ 最新 OS までに効果がある
– アプリのインストール後やアップデート後の初回起動はプリコンパイルされていない状態のため、特にアプリの起動速度やパフォーマンスが落ちる## なぜ Baseline Profiles が必要なのか
– これまで Cloud Profile として
Android ViewModelとDataBindingを使ってみた
# はじめに
学習記録
開発業務でも使用しているViewModelとDataBindingを触ってみる# 導入
・ViewModelを使用するため、以下設定
“`java:build.gradle
implementation ‘androidx.lifecycle:lifecycle-extensions:2.2.0’
“`
・DataBindingを使用するため、以下設定
“`java:build.gradle
// android{・・・}内
buildFeatures {
dataBinding = true
}
“`
続いて、各ファイルの編集・作成
・ViewModel
“`java:MainViewModel.kt
package com.example.sampleappimport androidx.lifecycle.ViewModel
class MainViewModel : ViewModel() {
// 画面に表示するデータ
var text = “This is Sample Message”
}
Android StudioのNetwork Inspectorが文字化け
# 事象
Network Inspector内のRequestやResponseの内容が文字化け# 解決方法
これと同じ方法で解決。https://qiita.com/watanaby0/items/bc2459e03c81a4b708c7
こちらにも手順を記述。
1. Help>Edit Custom VM Options..
2. ファイルに`-Dfile.encoding=UTF-8`を追加
3. Android Studioの再起動
アジャイル開発とは何か?
## はじめに
こんにちは!新人エンジニアのふかこうです!
今回は私が仕事でアジャイル開発をしていることもあり、それについての記事になります。
アジャイル開発ってどんな開発?っと思う方は是非読んでみてください!
## この記事の対象者
・アジャイル開発について知りたい方
・初級エンジニア
・エンジニアとして働きたい方
・IT企業に就職する学生
## 筆者のレベル
・新人エンジニア
・Android開発初級
## アジャイル開発とは
アジャイル開発では、短い期間でリリースし、フィードバックを受け、改善するサイクルを基本としています。(図表1)
![スクリーンショット 2022-09-09 0.46.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2613554/71eb10b7-7029-02e8-cdeb-51a4235fa6df.png)図表1一度リリースして終わりではなく、リリースしたソフトウェアに対するユーザーの
フィードバック自体が開発サイクルに含まれる点がアジャイル開発の原則であり
Tinkerboard 2S Android11導入
# 1.Tinkerboard 2Sおさらい
* Tinkerboard 2S でOpenCV(TinkerOS)に関する設定について投稿しました。
* 一応拙作の記事を記載します。https://qiita.com/Manyan3/items/4010428705a6e26a8a3b
* インストールOS対比表
| 項目/OS | TinkerOS | Android |
|:-:|:-:|:-:|
| OS書き込み | balena Etcher | balena Etcher |
| 主なプログラム言語 | Pythonなど | Java |
| 作成環境 | 任意のエディタ | Android studio |
| カスタマイズ | OSレベルで可能 | 開発者モードなど |
| MIPIカメラ※ | Opencv+Gstreamer | カメラ(標準) |
| USBカメラ | OK | OK |:::note warn
注意
MIPIカメラはカメラメーカで動作確認・保証しているところは今のところない模様です
未経験Androidエンジニアの1年を振り返る
## はじめに
未経験からAndroidエンジニアになって1年がたったので、ざっくりやったことを振り返っていく。## 入社前
医療系の仕事をしていて、プログラミングとは無縁な環境。
趣味でAndroidアプリ開発をやってみたらドハマりして、休日は個人開発をしながらずっとコードを書いていた。
Androidアプリの仕事したいな~と思ってたら、幸運にもtwitter経由でAndroidエンジニアとして受け入れてくれる転職先が決まりました。### 活動
– Android開発(6カ月)
– 個人アプリを3つ作成
– Android Jetpack等の基本的なライブラリを使える程度
– 競技プログラミング(2カ月)
– 転職前に暇だったのでやってみたがかなり面白かった
– 最初はpythonでやっていたけど、Kotlin大好きなのでKotlinで挑戦していた
– たくさんコードを書く機会を得て、論理的な考え方やコードの実装イメージが身についた
– A,B問題はスムーズに解けて、運がいいとC問題が解ける程度の実力
– Androidの実装スピードもか
jetpack composeでviewModelのデータを監視する
# 初めに
従来の`DataBinding`などの実装では、`ViewModel`に`LiveData`を持たせてそれを監視することで`view`の状態を切り替えていました。
しかし`jetpack compose`になってからは`MVVM`という設計自体が向いてないという話も出てきてはいますが、代替案がないのが現状です。
そこで今回は、`jetpack compose`を使った`ViewModel`のデータを監視する方法を紹介していきます。
### 本文
基本的には今まで`LiveData`を使ってた部分を`StateFlow`に変えればいいだけです。
そして、`Compose`に対して引数として該当画面の`ViewModel`を渡してあげれば、変数として監視することができます。
また、`Compose`側で値を変更したくないので`ViewModel`内で宣言する時は下記のようにするのがベストだと思います。
“`kotlin
private val _hoge = MutableStateFlow(“”)
val hoge: StateFlowget() = _h
vistaでandroid studio その18
# 概要
vistaでandroid studio 1.1.0やってみた。
jniが、やりたいので調査。# jniの仕組み
cソースをコンパイルして、soを作る。
– ndkをインストール。
– src/main/jniフォルダを作る。
– src/main/libsフォルダを作る。
– hello.cを書く。
– Android.mkを書く。
– ndk-buildにpathを通す。
– ndk-buildを実行して、hello.soを作る。apkにsoを挿入する。
– gradleを書いて、soを挿入。“`
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir “src/main/libs”
}
}
“`
javaソースを、書いて、jniを呼び出す。
– System.loadLibrary(“hello”)
– private native以上。
vistaでandroid studio その17
# 概要
vistaでandroid studio 1.0.1やってみた。
jniが、やりたいので調査。# android studio調査
|バージョン|発表時期|vistaで確認|
|:–|:–|:–|
|2021.2.1.16| 29 8月 2022
|2021.2.1.15| 27 5月 2022
|4.2.2| 2 7月 2021
|4.2.1| 18 5月 2021
|4.1.3| 25 3月 2021
|4.1.2| 22 1月 2021
|4.1.1| 11 11月 2020
|4.0.2| 7 10月 2020
|4.0.1| 17 9月 2020
|4.0.0| 24 6月 2020
|3.6.3| 22 4月 2020
|3.6 (64-bit)| 25 2月 2020
|3.5.2| 2 12月 2019
|3.4.2 (64-bit)| 1 8月 2019
|3.4.1 (64-bit)| 18 6月 2019
|3.2.1.0| 25 1月 2019
|3.1.4.0| 14 9月 2018
|2.3| 3 3月 2017
|2.2.3| 15
メモ:Android 12(API Level 31)で通知のアプリアイコンをタップしてもアプリが起動しない現象について
原因
–
これ。https://developer.android.com/about/versions/12/behavior-changes-12?hl=ja#notification-trampolines
通知トランポリンが正式名称らしい。
対応方法は各自で調べて下さい。
flutterにUnityを組み込むflutter unity widgetの使い方
# fluter unity widget
https://pub.dev/packages/flutter_unity_widgethttps://github.com/juicycleff/flutter-unity-view-widget
flutterにunityを組み込むやつ
# unity側
### version
unity2020以前のバージョンでも行けるらしいが,少なくとも僕がやった限りではうまくいかなかった.
unity2021以降を使ったほうが確実だろう.### モジュールの追加
まずモジュールを加えるから,下のようににチェックをいれインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730711/f6d54f48-a35a-4da3-afc8-42e7216ce83d.png)https://developer.android.com/games/develop/build-in-unity?hl=ja
# flutter側
###