Android関連のことを調べてみた

Android関連のことを調べてみた

デフォルト動作を理解して使ってますか?

この記事は、株式会社ACCESS Advent Calendar 2023 の19日目の記事です。

私個人としては今年はこれ含めてまだ2個しか記事投稿していないことに気づきましたが、去年一昨年が年1個だったのと比べると2倍に増えたとポジティブに捉えることにします。

# はじめに

多くのツールは、設定やパラメーターでその挙動を制御できるとともに、指定しなかった場合のデフォルト動作が存在します。それを理解せずに使うと、思いもしなかった挙動に直面する危険性があります。

私個人やうちのチームが実際に体験した例を(脚色も交えながら)いくつか挙げることで、デフォルト動作を理解して使うことの大切さをこの年末に改めて再認識する機会にしょうと思います。

# 1) RubyのNFKモジュールで半角カナ変換時に文字化け

## やろうとしたこと: 全角カタカナに変換

Rubyで半角カタカナを全角カタカナに変換したいです。
日本語のコード変換というとNKF、という知識から[ドキュメント](https://docs.ruby-lang.org/ja/latest/class/NKF.html)を見る

元記事を表示

compileSdkVersionとtargetSdkVersionの違い

# はじめに
いつも忘れてしまう。SDKの違いについてメモとして残しておきます。

# targetSdkVersion
以下に影響する

* UIの見た目
* UIの動作のアニメーション

# compileSdkVersion
以下に影響する

* 指定したバージョンまでの機能が使える

## 注意!!
compileSdkVersionで指定したバージョンの機能が使えるけど下位互換を意識する必要がある
以下の表記のやつ

“`java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.L) {
// ここはLollipop(Android 5.0)以降で実行される。
} else {
// こっちはKitKat(Android 4.4)以前。
}
“`

# まとめ
本当によく忘れるので覚えておいて損はないと思う。

元記事を表示

Androidスマホを使ったイーサネットテザリングによるWi-Fi環境構築例

:::note
1人暮らしの賃貸等で回線工事をするのが面倒な人向けに、イーサネットテザリングを使用したWi-Fi環境の構築方法についてまとめてみました。
:::

# イーサネットテザリングとは

スマートフォンに有線LANアダプターを取り付け、Wi-Fiルーター等に直接LANケーブルをつないでテザリングする方法をイーサネットテザリングと言います。

::: note warn
現時点※2023/12/19時点でイーサネットテザリングを使用できるスマートフォンは、Android11以上が搭載されたスマートフォンのみとなっています。
:::

# 必要なもの

– Android11以上のスマートフォン
– 長時間使用するなら、大容量バッテリー搭載機種がおすすめです。
– Rakuten Mobile等のデータ無制限プランで契約できるt通信キャリアで契約すると費用を抑えられます。(この記事で紹介する例では、Rakuten Mobileを使用しています)
– 自宅で使用しているスマホ:**Galaxy S20 Ultra 5G**

https://www.sams

元記事を表示

Android Keystoreを利用したAzure IoTへのセキュアな接続

### はじめに

IoTデバイスとして、さらには他のIoTデバイスの表示/操作器としてAndroidデバイスは手ごろな選択肢となる。
IoTデバイスで用いられるMQTT接続をAndroidデバイスから行ってみたい。
その際、Azure IoTを利用し、TLS相互接続によるセキュアな接続ができないか試した。

### Android Keystoreについて

Android KeyStoreは、Android 4.3(API レベル 18)以降で利用可能となった、Androidデバイス上で暗号鍵を安全に保管するためのシステムである。以下、主な特徴

1. セキュリティの強化: Android KeyStoreは、デバイスのセキュリティハードウェア(存在する場合)を利用してキーを保護します。これにより、キーがデバイス外部に露出するリスクを最小限に抑えます。

2. キーの生成と管理: アプリはKeyStoreを通じて、新しいキーを生成したり、既存のキーを取得したりできます。また、キーの使用方法(例えば、暗号化、署名など)に関する制限を設定することも可能です。

3. アクセスコントロー

元記事を表示

[Android] 最強のチート対策()の紹介

:::note alert
**筆者はチート対策の専門家ではなく、ゲーム開発者でもありません。趣味で齧っている程度でございます。
それに加え、このネタ記事は有用性のない雑な知識を垂れ流すだけの内容となっております。時間を無駄に浪費したくない方は、ブラウザバックをオススメします**
:::

# はじめに
日々チート対策に追われ、決して終わる事のないイタチごっこを永遠にやらされているアプリ開発者の皆様、お疲れ様です。

既存のチート対策を施しても中々防げるものでなく
ハッカー達は、あらゆる手段を使ってそれを回避して来ます。殴りたくなりますよね。
**そんな貴方にオススメ!**
この記事では、一味違ったチート対策をご紹介させていただきます。

:::note warn
# 役に立つとは言ってない
:::

# 前提知識
・APKのデコンパイルに関するリバースエンジニアリングの知識

・IDA Pro、GhidraなどのDisassemblerに関する知識

・関数フックなどの低レベルの操作に関する知識

・SOインジェクションに関する知識

・Androidの内部動作に関する最低限の知識

元記事を表示

手っ取り早くWindowsでadbコマンドを利用できるようにする方法

“`bat
winget install Google.PlatformTools
“`

:::note warn
たまにシステムが古いとエラーになるので、Windows Updateの実施とかストアの更新とか追加コマンドが必要になる場合があるけど、エラーが出た場合の具体的な対処はよくわからん
とりあえずwingetのバージョンを上げておけばええんでないかな
https://forest.watch.impress.co.jp/docs/news/1535509.html
:::

“`bat
C:\>winget install Google.PlatformTools
見つかりました Platform Tools [Google.PlatformTools] バージョン 34.0.5
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
インストーラーハッシュが正常に検証されました
アーカイブを展開しています…
アーカイブが正常に展開されました
パッケージのインストール

元記事を表示

IT業界に憧れる臨床工学技士が独学でAndroidアプリを開発した話

# はじめに
病院や医師が本気の医療を提供するためには、医療機器も実力を発揮できるよう、常日頃から交換部品や消耗品の定数を維持しておく必要があります。医療機器を安全かつ効率的に運用するうえで在庫管理は重要ですが、やはり患者さんの命に直接影響するという意識が低く、在庫管理は軽視されがちです。

私は臨床工学技士でありIT職種ではありませんが、部署内で使用する在庫管理アプリを開発・運用し2年ほど経過しました。そんなお話をしたいと思います。完成度については、プロの皆さんには遠く及ばないことは存じておりますので、温かい目で読んでいただけるとありがたいです。

# 私について
札幌市内の病院に勤務する臨床工学技士ですが、大学生のときからアプリ開発に興味がありました。Java・Kotlin・Python・C#などを独学で勉強し、自分ができることを使って自分や周りの人の仕事を少し楽にしたいと考えています。
### 臨床工学技士とは
臨床工学技士は専門学校や大学を卒業後、国家試験に合格することで厚生労働大臣より免許を受け、医療機器の操作や保守管理を生業としています。
我々が携わる医療機器は多岐に渡り

元記事を表示

既存のアプリを魔改造して、音声入力対応のデジタルサイネージを作ったお話

https://tech.i3-systems.com/entry/2023/10/31/kaigi_on_rails_2023 

このイベントに持ち込んだ、フラッシュ暗算をどのようにして作ったのか、という実装寄りのお話です。

## 既存: 手でポチポチと入力するフラッシュ暗算アプリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74571/6485e33e-c5ab-98bd-8cee-7e0754468bf3.png)

もともとは、Androidアプリ開発を始めたエンジニアが練習で作ったものでした。画面数もこの絵のくらいで、非常に簡素なものでした。Jetpack Composeも、Navigationコンポーネントも使われていない、素直にActivityを並べて作ったアプリでした。

## Step0: ViewModel + LiveData の構成にする

これはデジタルサイネージ関係なく、ただただ画面とロジックの分離です。

もともと、Activityにベタ書きで乱数発

元記事を表示

Android版のGNU Emacsについて


# Android版のGNU Emacsについて

[0. 前書き](#0-前書き)

[1. Android版のGNU Emacsの入手](#1-android版のgnu-emacsの入手)
[1.1 F-Droid版](#11-f-droid版)
[1.2 SourceForge版](#12-sourceforge版)
[1.3 野良ビルド版](#13-野良ビルド版)

[2. Android版GNU Emacsと共存可能なTermuxの入手](#2-android版gnu-emacsと共存可能なtermuxの入手)
[2.0 用語の定義](#20-用語の定義)
[2.1 F-Droid版](#21-f-droid版)
[2.2 SourceForge版](#22-sourceforge版)
[2.3 野良ビルド版](#23-野良ビルド版)

[3. 野良ビルドの必要性](#3-野良ビルドの必要性)
[3.1 Android版GNU Emacsの場合](#31-android版gnu-emacsの場合)
[3.2 Termuxの場合](#32-termuxの場合)
[3.3

元記事を表示

ActivityとFragmentのライフサイクル簡易まとめ

この記事は[Ateam Finergy Inc. × Ateam Wellness Inc. Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ateam-finergy-wellness)の18日目の記事です。

# はじめに
Androidアプリの開発で切り離せないライフサイクル。
`onCreate`や`onCreateView`など似たような名前も多くそれっぽい所に書いて終わりになりがちです。
今回改めてライフサイクルのコールバックについて種別、実行タイミング、主な用途を整理してそれっぽくを脱しようと思います。

# ライフサイクル
以下、ActivityとFragmentでそれぞれ記載します。
記載の順序は基本実行される順番となります。

## Activity
公式のドキュメントは下記となります。
https://developer.android.com/guide/components/activities/activity-lifecycle

![activity_lifecycle.png](

元記事を表示

Jetpack Composeやってみる

本記事は[Life is Tech! Advent Calendar2023](https://qiita.com/advent-calendar/2023/life-is-tech)の18日目の記事です!
やっほおおおおおお!!関東Minecraft&Unityコースのメンター、ことりだよ🐣

最近、マイクラやUnity以外に、実はAndroidの開発もしてるんだよね👀
Kotlinでコード書いてたらこの前、Minecraftコースのはるっぺに「ことりん、Jetpack Composeって知ってる?やってみるとおもろいよ!」って言われたの!!

### 何それ、、、👀!!!

気になったので調べてみた👀

## Jetpack Composeって何?
[Developer.Android.com](https://developer.android.com/jetpack/compose?hl=ja) によるとJetpack Composeというのは、
「ネイティブ UI をビルドする際に推奨される Android の最新ツールキット。Android での UI 開発を簡素化し、加速

元記事を表示

ConoHa VPSで通勤コーディング環境を構築する

# はじめに
これは[ConoHa Advent Calendar 2023](https://qiita.com/advent-calendar/2023/conoha) 18日目の記事です。

現在私が関わっているプロジェクトでは客先に通うことになっており、それによりぼっちちゃん並の通勤時間が発生しています。その時間を有効活用するために通勤電車内で[Flutter](https://flutter.dev/)アプリのコーディングをしており、今回はその環境についてご紹介したいと思います。

この記事では[ConoHa VPS](https://www.conoha.jp/conoha/vps/)にFlutterとAndroidのSDKをインストールし、AndroidスマートフォンからMoshで接続して[Emacs](https://www.gnu.org/software/emacs/)でコーディング、ビルドできたapkをSFTPでダウンロードしてスマートフォンにインストールし動作確認するという、一連のことを行える環境の構築方法について記述します。

なお、駆け足で説明していく都合上

元記事を表示

【Jetpack Compose】HorizontalPagerのスワイプ判定を調整する

この記事はand factory.inc Advent Calendar 2023 16日目の記事です。

## はじめに
今までAndoridViewではUIを実現するために諸々手間がかかっていたものが
JetpackComposeを利用することで一気に楽になる経験を多くされていると思います。

その中でもPagerの実装は非常に簡単になったと実感しており、
以下のコード(HorizontalPager)だけでPagerが実装できると知った時は私自身大変驚きました😅

“`Kotlin
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun HorizontalPagerSample() {
// ページの総数
val state = rememberPagerState { 10 }
HorizontalPager(
state = state,
modifier = Modifier.fillMaxSize(),
) { page ->
B

元記事を表示

Kivyで「西暦・和暦・年齢・干支」変換電卓作ってみた。

# はじめに
Pythonのkivyを使って西暦・和暦・年齢・干支の変換をする電卓を作ってみた。西暦、和暦または、年齢を指定して値を入力すると変換した値を出力する。活躍する場はそれほどないけど、あると少し便利な電卓。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1299802/34286e4f-b7db-9260-a6c3-0d2d000a08f2.png)

# 目次
+ [kivyで使ったウィジェット](#kivyで使ったウィジェット)
+ [西暦⇔和暦変換](#西暦和暦変換)
+ [西暦⇔年齢変換](#西暦年齢変換)
+ [西暦→干支変換](#西暦干支変換)
+ [作成したコード](#作成したコード)

# kivyで使ったウィジェット
今回kivyで使ったウィジェットは “`Button“`、“Spinner“、“TextInput“。Spinnerは、和暦の明治、大正、昭和、平成、令和を選択する際に使った。kivyについては([記事:PythonのGUIライブ

元記事を表示

【Android】画面回転した時に処理を入れたい【Kotlin】

# 実践
AndroidManifestに以下を記載します。
“`
android:configChanges=”orientation|screenSize”
“`

また、以下をActivityに記載します。
“`
override fun onConfigurationChanged(newConfig: Configuration) {
// ここに回転した時の処理
 }
“`

# onConfigurationChanged
**onConfigurationChanged()** メソッドは、デバイス構成を指定する **Configuration** オブジェクトを受け取ります。アクティビティを再起動することなく UI の要素を再設定できるようになります。

**Configuration**オブジェクトとは、すべてのデバイス構成情報を記述します。
具体的には入力モード、画面サイズ、画面の向きなどに影響を与えるオブジェクトです。

# 参考

https://developer.android.com/guide/topics/resource

元記事を表示

AndroidでのRemoteConfig実装方法

# はじめに
今回は、AndroidでRemoteConfigを受け取る部分を紹介していこうと思います
### 本文
MainActivityのonCreate内で下記の処理を追加します。
`remoteConfig`からgetStringで`parameter`の`key`を指定することでほしい値をJsonStringで取得することができます
“`kotlin:MainActivty
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
RemoteConfigParameter.values().map {
// 行いたい処理を記述

元記事を表示

【Unity】モバイルアプリ上で GPU 負荷を計測する

この記事は [Unity Advent Calendar 2023](https://qiita.com/advent-calendar/2023/unity) の17日目の記事です。

# はじめに

モバイルプラットフォーム (iOS / Android) では Unity 標準の [GPU Usage Profiler module](https://docs.unity3d.com/2022.3/Documentation/Manual/ProfilerGPU.html) のサポートには次のような制限があり、GPU 負荷計測を行うにはサードパーティー製のプロファイリングツールを使う必要が出てくるかと思います。

|Platform|GraphicsAPI|Status|
|:-:|:-:|:-:|
|**Android**|OpenGL|Supported on devices running NVIDIA or Intel GPUs.|
||Vulkan|Not supported|
|**iOS**|Metal|Not supported. Use XCode’s GPU

元記事を表示

Jetpack Composeでカメラアプリを作ろう!

## 今回のアプリ
アプリにカメラの許可を与える
![スクリーンショット 2023-12-16 20.39.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953312/ca883391-5f50-df8d-f0da-fca8320e9b8f.png)
カメラ機能
![スクリーンショット 2023-12-16 20.38.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953312/1c9ac09c-6b53-db83-6c56-faf52a7ee58c.png)

# はじめに
今、開発中のアプリでカメラ機能を実装した!!!!!
でも、JetpackComposeでカメラ機能を使う情報が少ないい!!!
そこで、あらゆるサイトを調べてまくって実装までこぎつけました。
今回は、その内容をまとめてみました。

# 開発環境
Android Studio Flamingo | 2022.2.1 Patch 2
Ma

元記事を表示

JetpackCompose縦幅の最大幅、最小幅を設定する方法

この前にCompose横幅の最大幅、最小幅を設定する方法を紹介しました。

# Compose横幅の最大幅、最小幅を設定する方法
https://qiita.com/yuta317/items/57ad03d986d718d9bf36

縦幅の最大幅、最小幅を設定することもできます!

# 最大幅、最小幅を設定する方法
`Modifier.heightIn(0.dp, 40.dp)`
`Modifier`に`heightIn`を設定すると実装できます。

便利なので覚えておくと良いかもしれません。

元記事を表示

【JetpackCompose】拝啓。カメラ映像の写真の背景と前景を分けたいです。【ML Kit】

# はじめに
こんにちは。私はAndroidを趣味として開発している[まっつー🀄](https://twitter.com/takumi_syojin)です。
最近Googleの勢いが半端ないですよね!Google PaLMがGenemiに進化するなど去年からこんなにも基板モデルがすごく成長しているのを見て僕もワクワクが止まりません!!!
(小声・・・でもちょっと最近AIが突っ走っているのは将来まずいと思いますが…)
そんなワクワクのなか、最近のNow in Android(なうい)で前からあった機能が公式で発表されていることを発見したので今更ながら開発方法をまとめてみました。

https://medium.com/androiddevelopers/now-in-android-97-f5db5d045dfb

Modifier.Nodeを使って開発したかったのですが、使えるところがありませんでした。。。

# 本記事のゴール
この動画のような機能が作れます。
![動画.gif](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

OTHERカテゴリの最新記事