Android関連のことを調べてみた2019年11月14日

Android関連のことを調べてみた2019年11月14日

CentOS7にcordova環境構築(GUI無し)

CentOS7にcordova (android アプリコンパイル環境含む)の構築手順

android studioは導入せず、android sdkのみ入れてみました。
GUI環境無でapkファイルの生成までできます。

“`sh
sudo yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash –
sudo yum install nodejs
sudo npm install -g cordova
mkdir cordova
cd cordova/
cordova create myapp
cd myapp/
# cordova platform add ios
cordova platform add android
cordova requirements
“`

“`console
$ cordova requirements

Requirements check results for android:
Java JDK: not ins

元記事を表示

Dagger2をいまさらだけど導入する2019

自分の担当するプロジェクトで全然Daggerに触れる機会がないので、いい機会なのでDagger2を今更導入してみました。

# きっかけ
自分が今取り組んでいるDDDにおいて、各レイヤーごとに処理を分ける必要がありますが、プレゼンテーション層から下のレイヤーのインスタンスを作るのが非常に手間だったからです。
DIを利用して依存性を注入してあげれば、ActivityやFragmentから

“`:HomeActivity.kt
private lateinit var homeApplicationService: HomeApplicationService

override fun onCreate(bundle: Bundle?) {
・・・
val homeDatabase = HomeDatabase(this)
val homeCache = HomeCache(this)
val homeDataStore = HomeDataStore(homeDatabase, homeCache)
val homeRepository =

元記事を表示

[Android] タッチの座標を確認する

タッチの座標をお手軽に確認する方法の紹介。
`input tap`するときの座標を確認するときに便利。

Screenshot_1573656099_.png

開発者オプションの”Pointer location”機能を有効にすることで、
画面上部にタッチイベントの詳細が表示される。

タッチ数・座標・測度・強さ・大きさおよび、タッチの軌跡が確認できる。

Screenshot_1573656163.png

“Pointer Location

元記事を表示

Android Studioを使ってGoogle Playを介さずにリアル(SHARP 304SH)で自作アプリを動かす方法

本内容を利用した場合の一切の責任を私は負いません。

#バージョン
– OS
OS 名: Microsoft Windows 10 Home
OS バージョン: 10.0.18362 N/A ビルド 18362
システムの種類: x64-based PC
– Android Studio
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 9, 2019
JRE: 1.8.0_202-release-1483-b03 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
– Android
4.4.2
– ADB USBドライバ
17.1(8698791byte 2019/7/9)

#準備
Android Studioを公式からダウンロード&インストールする。
ADB USBドライバを下記からダウンロード&

元記事を表示

Firebase Cloud MessagingのFCMトークン更新タイミングについて

# FCMトークンの仕様
Firebase Cloud Messagingを使ってアプリへのプッシュ通知テストをする際に、Firebaseコンソール上で対象デバイスのFCMトークンを登録する必要があります。
![スクリーンショット 2019-11-13 18.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6380/b96ec29a-dffc-ede4-7486-c76491810e8b.png)
このFCMトークンがデバッグ中にいつのまにか変わっていることがあり、挙動を把握するためドキュメントで仕様を確認してみました。

OS毎に挙動が異なるようだったので、それぞれの生成・更新タイミングをメモしておきます。
# Android

【参照】[Android で Firebase Cloud Messaging クライアント アプリを設定する | Firebase](https://firebase.google.com/docs/cloud-messaging/android/client?h

元記事を表示

[ Android ] パーミッション設定

Androidのパーミッション設定について記す。

##パーミッションとは
例えば、Android 上でインターネットに接続するためには、そのためのパーミッションを必要とする。
この時AndroidManifest.xmlに以下のような内容を記述する。

~~~xml

~~~

これがパーミッションである。

##種類
パーミッションには様々な種類がある。
上記のNETWORK ネットワーク通信に関するものを始め、PERSONAL_INFO 個人情報、DEVELOPMENT_TOOLS 開発ツール、MESSAGES 送受信したメッセージなど多岐に渡る。
これらを指定したい場合は、上記の追加した記述でINTERNETという部分を変えればよいだけである。
以下に一例を示す。

・ネットワーク通信
**ACCESS_NETWORK_STATE**:ネットワーク状態の表示を許可する。
**ACCESS_WIFI_STATE**  :Wi-Fi状態に関する情報の表示を許可

元記事を表示

[ Android ] パーミッション設定

Androidのパーミッション設定について記す。

##パーミッションとは
例えば、Android 上でインターネットに接続するためには、そのためのパーミッションを必要とする。
この時AndroidManifest.xmlに以下のような内容を記述する。

~~~xml

~~~

これがパーミッションである。

##種類
パーミッションには様々な種類がある。
上記のNETWORK ネットワーク通信に関するものを始め、PERSONAL_INFO 個人情報、DEVELOPMENT_TOOLS 開発ツール、MESSAGES 送受信したメッセージなど多岐に渡る。
これらを指定したい場合は、上記の追加した記述でINTERNETという部分を変えればよいだけである。
以下に一例を示す。

・ネットワーク通信
**ACCESS_NETWORK_STATE**:ネットワーク状態の表示を許可する。
**ACCESS_WIFI_STATE**  :Wi-Fi状態に関する情報の表示を許可

元記事を表示

LoT LT アドベントカレンダー2019用のウツワ

#かきます

元記事を表示

AndroidのWebViewでキーボードが入力欄にかぶってしまうとき

(日本語資料が少なくて、探すのにけっこう苦労したのでメモ)
AndroidでWebViewをそのまま使うと、入力欄を押してソフトキーボードが出現させたときに、キーボードが画面にかぶってしまうことがある。

そんなときは、対象WebViewを含むFragment or Activityの`onCreate()`に以下のコードを入れれば良い。

“`fragment.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
}
“`

これで、キーボードが出現したときにもFragment or Activityの大きさが再計算されて、キーボードが被らなくなる。

出典
[Window Soft Input Mode ConstraintLayout](

元記事を表示

実践AndroidX Preference Library

Androidアプリの開発でAndroidX Preference Libraryを使用して設定画面を構築した際、躓いた点を記載します。

# 前提

Android Studio 3.5.2
Kotlin 1.3
CompileSdkVersion 29

# 準備

アプリケーション配下のbuild.gradleに下記内容を記載し、ライブラリを導入します。

“`gradle:build.gradle
implementation ‘androidx.preference:preference:1.1.0’
“`

# 設定画面の生成

Android StudioのProjectツリーの任意の場所で、コンテキストメニューからNew -> Activity -> Settings Activityを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144437/ce3127d8-b49c-0e5a-2a69-639be640bcc6.png)

選択するとダイアログが

元記事を表示

VisualStudioでGradleを使ってNativeなAPKを作ってみる

# はじめに
昨日「[VisualStudioでAntを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/57df2533d1faa2a38b6f)」という記事を上げました。
散々Gradleでうまく出来ないと言っておりましたが、あの後すぐにうまく出来ました。
どうやったらGraldeでできるのか、そもそも何故うまくいかなかったのかをまとめていこうと思います。

# 開発環境
– OS : Windows 10
– Visual Studio 2017 Professional

# プロジェクトの準備
※1以外はAntと同じ手順です。

### 1. Gradleプロジェクトの作成
「**AndroidGradle**」という名前でプロジェクトを作っていきます。
![00.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75533/f222375a-ddd6-841c-0fbd-666c1cec144f.gif)

### 2. Sharedライブラリ

元記事を表示

Android フォアグラウンドからバックグラウンド、その逆のイベントとる

![スクリーンショット 2019-11-12 23.09.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67083/1848c92b-0a0c-5095-3ce0-5c0e51303f6e.png)

ハマりすぎたのでメモ2
参照とかnugetからパッケージ落としてくるとこは前記事を参照

仕組みはarch.lifecycle extentionsって言うのでなんでもライフサイクルが管理できる様になる
何も入れないとActivityはonPauseとonResumeとかあるのでこれはいらないが、
これをアプリケーション自体に適用するとアプリケーションがフォアグラウンドになった時とかバックグラウンドになった時のイベントをハンドリングできる様になる

画像を見れば以下のことが分かる
・アプリケーション自体のクラスの実装の仕方
・アプリがバックグラウンド、フォアグラウンドに行った時のイベントハンドリングのメソッド
・nugetから落とすパッケージ
・参照に入れるもの(参照を追加で検索>Extentio

元記事を表示

後輩養成のすすめ。~あの辛い徹夜ラッシュをもうしないために~

# 1.はじめに
## 1.1 経緯
年代によって大きく技術力は変わります。僕は学生ですので会社では年代は関係ないのかもしれませんが、プログラミングを必要としない世界(例えば非IT企業、研究室、中高学校)では大きく変わってしまうのです。もちろん一定数そうゆう人は入ってきます。学校ではパソコン関連の同好会みたいな部署が学園祭のアプリや動画を作っていました。僕の学校で問題だったのは人が足りないということ、そして学年によって差が多いところでした。

## 1.2 なにが問題?
まずは人が足りないということです。学校でやってるアプリとかっていうのは企業の真似事ですからアプリはデザインの人が仕様書作ってみんなで共同作業を…って感じですし、動画は絵コンテから映像化…ここからここまでは○○で…って感じでやるわけですよ。でも人が足りなければできることも少ない、でもやりたい、だから一人でやる。っていう感じに一人に背負わされるわけです。学生なのに労働基準法に抵触(学生だから適法だけども)してるわけですね(笑)

そして二つ目は代によって差があるということです。学校なので留年しない限り進級して卒

元記事を表示

[Kotlin] Android Studioで簡単に非同期処理

# はじめに
AndroidアプリでHTTPリクエストをしようとするとメインスレッドでやるなと言われるので、手っ取り早く解決する方法を一応メモ。

# 環境
– Android Studio
– 3.5.1
– Kotlin
– 1.3.50

HTTPリクエストするならインターネット通信のパーミッションを取るのを忘れずに!

“`xml:AndroidManifest.xml

“`

# コード
メインスレッドでやらなければいいので、Threadクラスで別スレッドを作成すればOK。
今回はとりあえずHTTPリクエストをしてみる。

“`kotlin:sample.kt
Thread {
// ここは非同期処理
val url = URL(“https://www.google.com”)
val httpCone = url.openConnection() as HttpURLCo

元記事を表示

[Unity]オーディオクリップ セッティング メモー

[Unityマニュアル](https://docs.unity3d.com/ja/current/Manual/class-AudioClip.html)一通り

**Force To Mono**
>これを有効にすると、マルチチャンネルオーディオはパックする前にミックスダウンされモノラルトラックにされます。
**結論:いつ(雑音で?)使われるんでしょう!!! 使ったことありません!(以降もなさそう!x1)**

**Normalize**
>これを有効にすると、Force To Mono ミックスダウン処理中にオーディオは ノーマライズ されます。
**結論:いつ(雑音で?)使われるんでしょう!!! 使ったことありません!(以降もなさそう!x2)**

**Load In Background**
>これを有効にすると、メインスレッドを妨げることなく、クリップの読み込みは別のスレッドで遅延させて行われます。
**結論:CPU負荷分担したい時に使えそうです!**

**Ambisonic**
>アンビソニックオーディオソースは、リスナーの向きに基づいて回転する音場を表す形式でオー

元記事を表示

VisualStudioでAntを使ってNativeなAPKを作ってみる

※2019/11/13 Gradle版の記事もアップいたしました。詳しくは [こちら](https://qiita.com/furui/items/59b5a290b2539bd0c8c3) をご御覧ください。

# はじめに
CEDEC2019 の「[玄人向けAndroid/iOS対応エンジン 開発レポート](https://cedec.cesa.or.jp/2019/session/detail/s5c9877b2970eb)」というセッションにて VisualStudioでもGradleを使ったNativeアプリが作れるという話を聞きました。
かなり前から私がやりたかったことでしたので早速試してみました。

# ブレイクポイントが止まらない
VisualStudioとGradleで色々試しNativeアプリは作れましたが、どうやってもブレイクポイントが止まりませんでした。
これではVisualStudioの旨味がかなり減ってしまいます。
ということで違う方法を模索しました。

# VisualStudioとAnt
Nat

元記事を表示

【デジタル署名】PlayStoreとAppStoreでAndroid・iOSアプリを配信する時の署名まわり【証明書】

「どうすればいいのか」という操作手順は探すと結構見つかるんですけど、

「それはなんのためにやるのか」というところがピンときてないと、

何かトラブった時に自分で対処できなかったり、

そもそも何をやってるかわからずに作業するのが気持ち悪かったりするので

それをなんとかする記事です。

間違いがあったらコメントで教えていただけるとありがたいです。他力本願…!

また、私自身で疑問が解決していないところは「ここがわからない?」という旨を随時書いていきます(?この絵文字で)ので、コメントで教えていただけるとありがたいです?。他力本願…!!

また、「デジタル署名」「公開鍵」「秘密鍵」「証明書」「認証局」などの言葉については既知とします。

知らなかったら先に調べてきてもらえると助かります。

…サラッと言ってますが、サクッと調べて2分で理解できるような概念ではないです。

ここで説明するとめちゃくちゃ長くなるので他に任せます、ということです。

#そもそも何がしたいのか

両OSで共通してやりたいことは

**配布するアプリにデジタル署名を施す**

ということです。

デジタル署名

元記事を表示

AppiumでAndroidアプリを自動テストする用の環境作成

# はじめに
まとまっているところがなかったので作成しました。
自分用備忘録兼ねてます。

## 使用技術
macでの開発を想定しています。
zsh使用してるので、bashの方は適宜読み替えてください。
### Main(必須)
– Xcode
– Homebrew:性質的にはsubだけどないと始まらないのでmainに入れてます
– Ruby
– Node.js
– Java
– Android Studio
– Appium
– WebdriverIO

### js fremework
– mocha + chai

### Sub
– enyenv:env系管理
– rbenv:ruby管理
– nodenv:node管理
– jenv:java管理

## 環境作成
### — First Step —
#### 001 Xcode install
AppStoreから。App版のテストで必要なのと、Homebrew入れるのにどうせ必要なので入ってない方はこの瞬間入れてください。結構時間かかります。
入れ終えたら一度起動して`Xcode Command Line Tools

元記事を表示

[Android]Exifを理解して、取得して、表示する

# はじめに

今回は Exif を理解して、取得して、表示して見ようと思います。
最終的には次のような Android アプリを作成して動作確認します。

# Exif を理解する

私は写真の位置情報を取得するなら Exif で理解が止まっているので、
はじめに Exif について調べて理解を深めていこうかなと思います。

## Exif ってなんなのか?
次のようなことが Wikipedia の Exif のページに書いていました。

“`:Wikipediaから引用
Exchangeable image file format(エクスチェンジャブル・イメージ・ファイル・フォーマット)は、
富士フイルムが開発し、当時の日本電子工業振興協会 (JEIDA)で規格化された、写真用のメタデータを含む画像ファイルフォーマッ

元記事を表示

Android visual studi for mac 2019 でnuget でlifecycle extentions

すごいハマったので取り急ぎメモ
現在Androidアプリをvisual studio でC#で実装しているが
iOSアプリで言うところのWillEnterForegroundイベントが取得できない。

https://qiita.com/takusemba/items/92e700ee6c24a3398d03
このページを参考にすると
arch.lifecycle extentions をbuild.gradleで取得するとの記載があるが
visual studio for mac 2019 ではそもそもbuild.gradleが存在しない。
その代わりにデフォでnugetというのが入ってるらしい。

ソリューションエクスプローラからManage nuget Packageを選択し、arch.lifecycle extentions
を探し、1.1.3をインストールしようとしても
失敗しましたと出る。

結局これは
プロジェクト>右クリック>ビルド>全般>ターゲットフレームワークを8.1oreo
にし1.1.1をインストールしたところできた。
Androidのビルドバージョンとlife

元記事を表示

OTHERカテゴリの最新記事