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

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

Androidスマホ・タブレットは何でもできる!Termuxで動かすアレコレまとめ

「使ってないAndroidスマホ,タブレットがある」
「これサーバーにできないかな?」

その夢,**かなえられます。**

少々めんどくさい作業もありますが,やっていけば必ずできます。

# どうやって動かすか
Androidには「Termux」というアプリがあります。
これを使うと,Linuxを動かすことができます。
パッケージもAPTで管理されていて,豊富です。

https://play.google.com/store/apps/details?id=com.termux&hl=ja

また,GBoardなどのキーボードですと不便を感じるかもしれません。
「Hacker’s Keyboard」がおすすめです。

https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=ja

## 下ごしらえ
Linuxに触れたことのある方は慣れていると思います。

まず,Termuxが端末内のファイルにアクセスできるようにするには権限を与える必要があります。

“`bash
$ te

元記事を表示

Flutter辞書

##Widget

**ー部品**

##Constraint Programming

**ー制約プログラミング**

「問題を制約の集合として記述してコンピュータに与えると、コンピュータが制約を充たした答を見つけてくれる」

ことを目指すプログラミング・パラダイムのことだと言えます。

##Sandbox

コンピュータセキュリティ技術において、**サンドボックスは**、外部から受け取ったプログラムを保護された領域で動作させることによって、システムが不正に操作されるのを防ぐセキュリティ機構のこと

##ただの英和辞典

– anatomy:解剖学
– emulate:模倣する
– deploy:展開する
– configure:構成・機能
– resource hog: A computer function that slows processing time.

##その他

– みてから自分でやってみよう
– ノートをとるのはありだよ
– 動画は飛ばさない
– わからないことがあれば自分でググってみて、そのあと少し時間をおいてから見直すといいよ
– The most impr

元記事を表示

【Kotlin】onClickListenerのパターンとその使い分け方

#はじめに
 この記事では私がインプットした`onClickListener`の3つの記法と、そのメリットデメリットを記しています。今回記していくのは3パターンですが、私が恣意的にチョイスしただけで、この3つが全てを網羅している事など無いので悪しからず。

##一つ目:クラス全体に掛かるインターフェースを用いる
 MainActivityに実装すると仮定したとき、クラス自体に`View.OnClickListener`のインターフェースを参照します。

“`
class MainActivity : AppCompatActivity(), View.OnClickListener {

   override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button1.setOnClickListener(this)
}

o

元記事を表示

[Android]自動スクロールで手を動かすことなく実機確認を行う

一覧など、無限スクロールが存在する機能を使用するときに、実機にかかる負担をAndroidStudioのMemory Profilerで監視をし~~重箱の隅をつつく~~品質をチェックしているのだが、手で動かすのがだるい。

なので、無限スクロール自動化をしてみた。

# SampleCode

簡単にRecyclerViewのSampleコードを実装したので、こちらを使用する。
https://github.com/yamachita0109/RecyclerView

# 実際に自動scrollしてみた

下記コマンドをコマンドラインに貼り付ければOK。
もっと細かい値を指定したい場合は、[公式ドキュメント](https://developer.android.com/studio/command-line/adb?hl=ja)を参考にすること。

“`
$ while [ true ]; do
adb shell input swipe 521 1540 492 432
done;
“`

## デモ

![demo.gif](https://qiita-image-store.

元記事を表示

net::ERR_CLEARTEXT_NOT_PERMITTED

#エラー:net::ERR_CLEARTEXT_NOT_PERMITTED

#AndroidManifest.xmlに追加
・android:usesCleartextTraffic=”true”

元記事を表示

【Android 9.0 Pie】ActivityやFragment以外でのstrings.xmlの呼び出し方の例

## 初めに
定数の管理に便利なstrings.xmlですが、ActivityやFragmentを継承していないクラスで呼び出す際の方法をメモしておきます。

## 実装方法
私はApplicationクラスを継承したクラスにコンテキストを生成してしまい、定数取得用の関数を作成して呼び出し側のコードを少しでも削れるようにしてみました。

“`java:Model.java
public class Model extends Application {
private static Context context;

@Override
public void onCreate() {
super.onCreate();
context = this;
}

/**
* 定数取得関数
* strings.xmlに定義した定数をどこからでも取得できる
* @param resId R.string.resId
* @return String 定数
*/
p

元記事を表示

RecyclerViewで消えないScrollbarを表示する

## 概要
RecyclerViewで要素が多い際に、まだスクロールできることをユーザーに伝えたかったので調べた際のメモです。

## Scrollbarを表示する
表示されるようにするだけなら`RecyclerView`に`scrollbars`項目を指定してやれば良い。
しかしこれだけだと、時間経過でフェードアウトしてしまう。

“`
android:scrollbars=”vertical” // 横向きならばhorizontal
“`

## Scrollbarが消えないようにする
時間経過で消えないようにするため上述の要素に加えて`fadeScrollbars`に`false`を指定する。

“`
android:scrollbars=”vertical” // 横向きならばhorizontal
android:fadeScrollbars=”false”
“`

元記事を表示

[Android]インストラメント化テストとローカルテストでコードを共有するには

# はじめに
Androidプロジェクトのテストは、テストの実行環境で以下のふたつに分けられます。

– **ローカルテスト**
`module-name/src/test/java/` にあります。
マシンのJVM上で実行されるため、実行時間・リソースがより少なく済みます。
Androidフレームワークを必要に応じてモックする必要があります。

– **インストラメント化テスト**
`module-name/src/androidTest/java/` にあります。
実機またはエミュレータ上で実行するため、再現性が高く実行時間・リソースがより多くかかります。
Instrumentation APIからContextなどの値を参照できます。

# テストソースにファイルを追加する
これらのテストでコードを共有したり、任意のファイルを参照するには、gradleでテストソースを指定します。

例えば、ローカルテスト・インストラメント化テストでコードを共有したい場合、
`module-name/src/sharedTest/java/{アプリのパッケージ名}`配下にファイルを作成し、アプリモ

元記事を表示

In-app Billing APIのPurchaseの形式を調べた話

## Play Billing Libraryが3.xに
Play Billing Libraryが3.xがリリースされました。
Play Billing Libraryを利用することでAIDLファイルとサービスクラスを作成する手間なくIn-app Billing APIを利用できるようになり、非常に便利になりました。

## ところで、In-app Billing APIで購入をした際のレシートの形式が知りたい
Androidでアプリ内課金の実装をする場合、サーバーにレシートを送るAPIが必要です。
APIの実装のためにレシートの形式を把握する必要があり、実際にコードを書いて調べたので備忘録的にまとめておきます。

## 確認用のコード
今回の確認用のコードですが、以下のように `BillingClient.launchBillingFlow()`を実行して

“`kotlin
val params = BillingFlowParams.newBuilder()
.setSkuDetails(details)

元記事を表示

Android の実行環境

配属された新人のトレーナーになったので Android のコーチングをしているわけですが
上手く言語化できない部分があったので自分なりに纏めました。

間違い等コメントいただけると嬉しいです?

## Java

– クラスベースのオブジェクト指向型プログラミング言語
– 処理速度が速い
– プラットフォームに依存しない
– オブジェクト指向

### JVM

`Java Virtual Machine`

– Java アプリケーションを動かすためのソフトウェア
– JVM が各 OS 向けに Java クラスファイルをコンバートする事でアプリケーションが動作する

Java プログラム (.java) をコンパイルすると Java クラスファイル (.class) が出来上がる。
Java クラスファイルを JVM が各 OS 向けにバイトコードに変換してアプリケーションを動かしている。

jvm_flow.png既存アプリを一部Flutter化する(Add-to-app)

Flutterには既存のNativeアプリの一部分をFlutter化するソリューションである[Add-to-app](https://flutter.dev/docs/development/add-to-app)が存在するので試してみる。

Androidでは特定のActivityをFlutter化出来たり、特定のFragmentをFlutter化出来たりと結構柔軟に対応できそうである。
iOSに関しては特定のViewControllerをFlutter化可能である。

Flutter Module(Flutter化された画面というか普通にFlutterの部分)を作成して、Android、iOSそれぞれから呼び出すまでの手順を示す。

# 制限
Flutter v1.12 Add-to-appには下記制限が存在する。

– 複数のFlutterインスタンスを動作させたり、Viewの一部で動作させると挙動がおかしくなる可能性がある。
– [バックグラウンド動作モード](https://flutter.dev/docs/development/packages-and-plugins/b

元記事を表示

Bluetooth AudioデバイスからTHETAを操る

## はじめに

リコーの @mShiiina です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

2020年6月のFWアップデートにより、プラグインでBluetooth Classicデバイスを使用できるようになりました。

今回は、Bluetoothイヤホン、Bluetoothオーディオを使用してリモート撮影ができるプラグインを作ってみました。動画はこんな感じです。

元記事を表示

Huu プライバシーポリシー

“””,HuuLooのプライバシーポリシーをお読みいただき、ありがとうございます。”””,
“””お客様には、当社を信頼して情報を提供していただいていることにお礼を申し上げます。当社が収集する情報の種類、収集の理由、収集した情報の利用方法、お客様情報に関する選択について理解を深めていただくことがまず重要であると考えます。本ポリシーは、当社のプライバシー対策を、法律用語や専門用語をなるべく控えて、平易な言葉で説明しております。”””,
“””発効日:2020年4月30日”””,
“””1.本プライバシーポリシーの適用範囲”””,
“””2.当社が収集する情報”””,
“””3.情報の使用目的”””,
“””4.情報共有の方法”””,
“””5.越境データ移転”””,
“””6.お客様が有する権利”””,
“””7.お客様の個人情報の保護方法”””,
“””8.当社におけるお客様情報の保有期間”””,
“””9.児童

元記事を表示

NDKでOpenCVを使った画像処理向けAndroidアプリのひな形 (とマルチプラットフォームに向けた設計)

# はじめに
先日、[CameraXとOpenCVを使った画像処理向けAndroidアプリのひな形](https://qiita.com/iwatake2222/items/c0ebe6d84afdef57aab3 )という記事を投稿しました。これは、カメラ入力、画像処理、画面出力のすべてをJavaコードで行いました。
今回は、画像処理をNDK(C++)側で処理してみます。

これによって、上手く設計すれば様々なプラットフォームで共通のロジックコードを使用することが出来ます。これについては後半で少し触れます。

例えば、↓の動画はディープラーニング処理(Pose NetとSemantic Segmentation (DeepLab)) を行う処理と結果の描画処理をライブラリ化し、Androidアプリ、Windowsアプリ、Linuxアプリ(x64, armv7, aarch64)から呼べるようにしています。

元記事を表示

Flutter(Dart)でValidationを実装する

# バリデーション
“`validation_helper.dart
// 英数のみ、6桁のバリデーション

class Validator {
Validator._();

static bool isValidHoge(String hoge) {
const _hogeRegExpString = r’^[0-9a-zA-Z]{6}$’;
return RegExp(_hogeRegExpString, caseSensitive: true).hasMatch(hoge);
}
}
“`

接頭辞`r`を付することでraw(生)文字列として扱うことができます。(エスケープシーケンス回避のため)

参考記事
1. [form用正規表現判定/備忘](https://qiita.com/fubarworld2/items/9da655df4d6d69750c06)
2. [RegExp constructor](https://api.flutter.dev/flutter/dart-core/RegExp/RegExp.html)

元記事を表示

agora.io RENDERモード (映像表示モード)

# 概要
agora.io の VideoSDK for Native では、[RENDERモード](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1video_1_1_video_canvas.html#a2c5722848cb5a96999f44de58025ae04)という機能により、画面上の映像表示設定をすることができます。
本記事では、Androidを利用して、本機能の利用方法および各モードの映像表示を説明します。

# RENDERモードの利用方法
RENDERモードは、以下のAPIコール時に引数で指定します。

– [setupLocalVideo](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1video_1_1_video_canvas.html#a2c5722848cb5a96999f44de58025ae04)
– [setupRemoteVid

元記事を表示

【Kotlin】初心者向け: 画面回転やスリープ後のUIの保持

# はじめに
 今回は画面を回転させたときや本体をスリープさせた後、ビューの一部がその前後で変わってしまう問題について取り組みます。下の簡易的なボタンカウンターアプリでその様子が確認できます。縦画面でカウントアップさせたとき、横に切り替えると数字が0に戻ってしまうのです。
キャプチャ.PNG
キャプチャ2.PNG

#原因
 この問題の原因は、画面の向きを変えるなどの諸動作によって、Activityがライフサイクルを一からやり直す事にあります。

元記事を表示

Ionic & golangでリアルタイム大喜利アプリを作りました

アプリのリリースまでなんとか漕ぎ着けたので、宣伝も兼ねて使ったフレームワークについて紹介します。

### どんなアプリか

写真で一言アプリです。
特徴的なのはリアルタイムで集まった人たちが、お互いに投稿し合ったボケを評価し合う部分です。

マッチングした最大10名が、制限時間内に一つのお題写真に対してボケを投稿します。
投稿はお互いに評価することができ、一定数イイネを集めると一本獲得になります。

こちらからダウンロード可能です。
よかったら遊んでみてください。

android
https://play.google.com/store/apps/details?id=jp.co.popbits.funnyapp

ios
https://apps.apple.com/jp/app/funny-one/id1515018792

## アプリ側

### ionic

アプリのベースはIonic Frameworkで作成しました。

https://ionicframework.com/

ざっくりいうと、
webview + Angular
にネイティブっぽいリッチな見た目

元記事を表示

【Android】EditTextで日本語入力⇔英語入力の相互切替ハンドリングは難しい

## 初めに
すみません、解決策を提示する内容ではないです。

Emailアドレスの入力時は
`inputType:textEmailAddress`
で英字入力モード
テキスト入力時はを初期表示にしたい
`inputType:text`
で日本語入力モードを初期表示にしたい
と格闘し、結論無理と行き着きました。。

**非常に時間を浪費し、悲しみを覚えた**ので、同じような悩みを抱えて嵌り続ける方がもしいたら早めに切り上げるよう共有したくメモします。
いやいや出来るよ!という賢者がいらっしゃったら是非ご教示下さい。。

## 事象
以下のように、
TextInputEditTextにを指定して初期のソフトキーボードを英字入力にしようとしたのですが、
別のEditText等で日本語入力に切り替わると、以降inputType:textEmailAddressの初期表示も日本語入力になってしまいます。

“`java:activity_main.xml

元記事を表示

Splash画面を実装する方法

# はじめに
Splash画面とは、アプリ起動時に最初に表示される画面です。アプリを起動するのに少なからず時間がかかります。その間に差し込む画面です。

Splash画面は、↑のGIFで写っているドロイド君の画面です。
この画面を作成する方法は大きく分けて2つあります。
1つ目は、Activityのテーマを変更する方法
2つ目は、Splash画面ようにActivityを作成する方法です。
今回はそれぞれの長所短所と実装方法についてまとめていきます。

# 1つ目の方法
1つ目は、**Activityのテーマを変更する方法**です。アプリは起動すると、デフォルトでは`windowBackground`の画面が表示されるらしいです。このプレースホルダーをSplash画面に拡張します。

## 実装
`windowBackgroudcolo

元記事を表示

OTHERカテゴリの最新記事