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

Android関連のことを調べてみた2020年02月13日
目次

AndroidStudioでプロキシの設定を解除しても反映されないときの対処法

## 目次
1. 概要
2. 環境
3. 解決方法
4. 原因
5. まとめ

## 1. 概要
一度プロキシ設定を行った後に、File->setting->System Setting->HTTP Proxyから`No proxy`を選択してもプロキシ経由でアクセスしてしまい、解決に時間が掛かったので解決方法を残しておきます。
## 2. 環境
– AndroidStudio 3.5.1

## 3. 解決方法
gradle.properties(Grobal Properties)の記述を削除したら,非プロキシ環境下でも動作しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437348/d57a0b70-2db6-8f06-6788-b29eb86047e1.png)
上の4行を削除

## 4. 原因
AndroidStudioの`setting`でプロキシの設定を行うと、自動で`gradle.properties`にプロキシの設定が追加されます。しかし、`No Proxy

元記事を表示

libtensorflow_inference r1.15 を Android 向けにビルドするメモ

## 背景

* C/C++ で, 既存 r1.x 系の Tensorflow(C binding) 推論アプリを Android でも動かしたい
* 速度はそんなに問わないし, そもそも tflite では動かないモデルがある
* Java レイヤーは使わない

tensorflow + Android で検索するとだいたい tflite がヒットしてしまいますが, ここでは本来の(?)libtensorflow を Android 向けにビルドしてみます.

モバイルでは tflite 推奨で, libtensorflow のモバイル向けビルドは非推奨となっています.
とはいえ, そもそも tflite では動かないケースが多いので(特に RNN とか使っていたりする音声系), 頑張って libtensorflow を動かしてみます.

libtensorflow on Android では, CPU のみの対応になります.
現状 C++ API のみのようです. また, 使える C++ API には制約があります
(C API は根本からビルドを変えないといけない

元記事を表示

WebViewでcssのvhが効かない時はLayoutParamsでheightを設定しよう

# タイトル通りなんだけど一応コード

WebView webView = new CustomWebView(getActivity());
parentLayout.addView(webView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

高さが設定されていないとvhは機能しない。

元記事を表示

ExoPlayerのv2.11で個人的に便利だと思ったやつ

# WakeLockを自動で取得

バックグラウンドでの安定して再生させるためにWakeLockを取得するわけですが、WakeLockは取得したままだと電池を消耗してしまうので再生状態に応じてWakeLockを自動で取得 / 開放してくれる機能が付きました。

> Add automatic WakeLock handling to SimpleExoPlayer, which can be enabled by calling SimpleExoPlayer.setHandleWakeLock (#5846). To use this feature, you must add the WAKE_LOCK permission to your application’s manifest file.

使い方はかんたん。 `setHandleWakeLock` で `true` を設定するだけ

“`kotlin
SimpleExoPlayer.Builder(context).build().also {
it.setHandleWakeLock(tru

元記事を表示

遅延評価lateinit・lazyの違い

#はじめに
遅延評価とは、必要な時まで値を代入したり計算したりを無視することをさします。
そのため、使用しない場合は計算を無視することで、処理コストを減らすことができます。
今回は、遅延評価として使用されるlateinitとlazyの違い等の紹介したいと思います。

##lateinitとlazyの違い
まず、それぞれの宣言はこちらになります。

“`kotlin

//lateinit
private lateinit var testButton: Button
private lateinit var 変数名 : 型

//lazy
private val testNumber by lazy { intent.getIntExtra(“Int”, 0) }
private val 変数名 by lazy { 代入したいもの }
“`

lateinitの特徴として、
・プリミティブ型は宣言できない。
・varで宣言。
・値の変更可能。
・初期値を与えず変数を使用すると、エラーが発生します。
・nullableは使用できない。

lazyの特徴として、

元記事を表示

Androidタブレット(HWT31)を子供用Kindle専用端末にする

#背景

以前よりKindleで購入した本は家族内で読みまわしたいと思っていた。紙は好きだが、狭い日本の家でスペース取る。読書権の永続性が担保されてるわけではないが、ITジャイアントのモラルを信じて数年前からKindleに集約している。何なら紙で買って、処分したのち、電子で買い直すことすらした。コンテンツ産業よ光あれ。

[話を戻そう](https://www.google.com/search?q=%E6%99%82%E3%82%92%E6%88%BB%E3%81%9D%E3%81%86+%E3%81%BA%E3%81%93%E3%81%B1)。
子供らYouTubeめっちゃ見るのよね。ほっとくと1日中。ほんま良くない。全てが悪とは言わないが低俗なものにハマっている印象だ。最初に渡したのが良くなかった。せめて[Youtube Kids](https://youtube.com/kids/)にしておくんだったが、後からの移行は不可能であった。見れなくなるチャンネルばかりでブーイングの嵐であったためだ。仕方なく時間制限を設ける運用に至っている。

Kindleで買った漫画を読ませるために

元記事を表示

AndroidでFirebaseを使ったログインの際にINVALID_CERT_HASHが起きる場合の対処法

Google Playアプリ署名が有効になっていると、自分のアプリ署名が削除され、アプリリリース後にGoogle Playが付与したアプリ署名が使われる。

スクリーンショット 2020-02-11 19.14.48.png

そのため、Firebaseログインを利用する場合、自分が署名した際のSHA-1フィンガープリントではなく、Google Playが署名した際のSHA-1フィンガープリントをFirebaseの設定で登録する必要がある。

スクリーンショット 2020-02-11 19.12.54.pngSnackbar使用時に ScrollView can host only one direct child とエラーが起きる場合の対処

## 問題概要
この記事にたどり着いた人はScrollViewにaddViewした覚えがないのに
`ScrollView can host only one direct child ` のエラーに悩まされている人かと思います。

その場合、
Snackbarの[make](https://developer.android.com/reference/android/support/design/widget/Snackbar.html#make(android.view.View,%20java.lang.CharSequence,%20int))の第一引数に渡しているviewが、ScrollViewになっていないか確認してください。

ScrollViewになっていれば、原因はそれの可能性が高いです。

## 原因

MateralComponentの1.1.0-alpha-06までのSnackbarの実装を見てみると、

“`java
@NonNull
public static Snackbar make(
@NonNull View view, @Non

元記事を表示

Introduction of Data Binding in Android

本稿ではData bindingの実装手順を備忘録として残しておきます。

SeekBarとViewModel、TextViewを結びつけて、SeekBarの変化を画面表示に反映する機能を実装します。

使用する主な道具としては、`SeekBar`・`Data Binding`・`LiveData`になります。

[Githubに実装がおいてあります。](https://github.com/sahara-ooga/android-data-binding-sample)説明上コードを適宜省略していますので、詳しくはこちらのレポジトリを参照してください。また、説明と対応するコミットへのリンクを掲載していますので、実装を追記する位置はこちらを参照してください。

## 環境

macOS 10.15.3

Android Studio 3.5.1

Kotlin plugin 1.3.61-release-Studio3.5-1

## 実装手順

以降、package名を example.android.android_data_binding_sampleとして進めます。

###

元記事を表示

Flutter プラットフォーム固有機能を利用するためのSystemChannels APIについて

# はじめに

Flutterからプラットフォーム固有の機能を利用するためのAPIの[SystemChannels](https://api.flutter.dev/flutter/services/SystemChannels-class.html)について解説します。

## SystemChannelsとは

まず最初に、基本的にこのAPIを使うことは推奨しません。Flutter Framework内部ではこのAPIを多用していますが、以下のように中間レイヤのAPIであるため今後のバージョンアップで変わる可能性が高いです。

SystemChannelsの[ソースコード](https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/services/system_channels.dart)を見ると、中身はMethodChannel, EventChannel等を利用していることが分かると思います。MethodChannelやEventChanne

元記事を表示

Kotlin, LiveData, coroutine なんかを使って初めてのAndroidアプリを作る(8)

[前回](https://qiita.com/kasa_le/items/e372c9e18b60f4b2f430)の続きです。

# 今回の目標

リストの表示を1ヶ月1ページにします。
そしていわゆる`ViewPager`を使い、左右にスワイプすることで月を移動できるようにします。

※カレンダー風の表示は、また次回に回します。

ViewPagerは、Androidでは使えないとお話にならない機能だと思うので、是非覚えて下さい。

# 1ヶ月1ページにする

## (1) レイアウトの変更

今表示してる「年月」を表示する部分を追加します。
完成イメージはこんな感じです。

![qiita08_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103886/00eaa98f-2fce-f1fd-871a-932794b1673a.png)

レイアウトxmlのサンプルはこちら

“`activity_main.xml

元記事を表示

Unity 2019.3 でJDK、NDK、SDKが無いエラーが出る場合の対応方法

Unity でAndroid開発、あるいはOculus開発しようとしたら、 `UnityException: JDK not found` が出ましたか?
自分は同じミスを二度ほどして学びました。

# エラー内容
“`
UnityException: JDK not found
Java Development Kit (JDK) directory is not set or invalid. Please, fix it in Preferences -> External Tools
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:187)
“`

Preferences を見ると、JDK周りに警告が出ている。
スクリーンショット 2020-02-11 1.15.17.png今からスマホアプリの学習をしようとしてる人に向けて!

##1. はじめに
私は新卒でITベンチャーに入社して、現在スマホアプリのフロントエンドエンジニア(※以下 アプリのフロント)として、
Android、iOS共に、主にECアプリなどを開発しております。
そんな私がスマホアプリの学習をしようか検討中の方に向けて、「**アプリのフロントはこんな感じ**」というのを共有させていただければと思い記事にしました。

##2. スマホ開発の仕事はある?
学習するか悩んでる言語がある方の多くは、「その言語を学んでも仕事が無いんじゃ意味がない」と思っている方だと思います。
確かに「仕事がない」=「必要とされていない」と言っていいと思うので、これから学習する言語は仕事が多く取れる言語が良いですよね。
その点、**スマホのエンジニアは仕事がある**と私は胸を張って言えます。
これは「勤めている会社の中で仕事があるから」「自分がやっているから」というだけが理由ではありません。
私は趣味で英語の勉強会に行くのですが、その際職業の話になりアプリを作っていることを話すと、
結構な確率で「こういうサービスを考えているんだけど…」と相談されます。
今、何かサービスを

元記事を表示

Flutter MessageChannel APIの使い方

# はじめに

Flutter (Dart) とプラットフォーム (Android/iOSなど) 間の通信/呼び出しAPIについてまとめています。

* [MethodChannel](https://qiita.com/kurun_pan/items/db6c8fa94bbfb5c0c8d7)
* [EventChannel](https://qiita.com/kurun_pan/items/6d63ebf1e894d3620b20)
* MessageChannel ← 今回

## 1. MessageChannelとは

プラットフォーム (Android/iOSなど) とFlutter (Dart) 間で双方向でメッセージ送受信するためのAPIであるMessageChannel (正確には[BasicMessageChannel](https://api.flutter.dev/flutter/services/BasicMessageChannel-class.html)) です。片方からもう片方にデータを送信し、受信したらリプライを返すというごく普通のメッセージパッシン

元記事を表示

51歳から(現52)のプログラミング 備忘 Android Toolbar (アプリBar)

#Toolbar表示まで
##androidx
manifest build.gradle dependencies implementationは、androidxのappcompatであることを確認ね

“`java:
dependencies{

implementation ‘androidx.appcompat:appcompat:1.1.0’

}
“`

##AppCompatActivityを拡張

“`java:
public class MyActivity extends AppCompatActivity{
}
“`

##manifestでNoActionBarテーマを設定
以下はandroidx未満の説明。androidxでの扱いが不明だったので、一応呪文として書いておく。

manifestの要素でappcompatのNoActionBarテーマの何れかを使用するように設定すると、ネイティブのActionBarでアプリバーが使えなる、とリファレンスに書いてある。

“`java:

元記事を表示

Uno Platform 入門 2 : 環境構築をしよう! Uno Platform ハローワールド

いよいよ **Uno Platform** の開発環境を整えてみましょう。 **Uno Platform** はクロスプラットフォーム開発環境なので、それぞれの環境で動くように、多少揃える必要のある環境があります。
この記事では、ちゃんとそれぞれが動くか一歩一歩動作確認しながら進めていきます。

この記事のゴール:

1. **Xamarin.Forms** ハローワールド (環境構築 && 実行)
3. **ASP.NET Core** ハローワールド (環境構築 && 実行)
2. **Uno Platform** ハローワールド (環境構築 && 実行)

参考記事:

* 前回の記事:『[Uno Platform 入門 1 : Uno Platform とは? ~ C# で iOS, Android, Web, Windows 10 アプリを一気にクロスプラットフォーム開発~](https://qiita.com/chomado/items/9a36d5e1bb41c4f6cef3)』
* (英語) 『[Using Uno – getting started / Sett

元記事を表示

UnityでMicrosoft Cognitive Speech Servicesによる音声認識をAndroidスマホで実装する

Androidスマホで動作するUnityの3Dアプリに音声認識をさせる必要が生じたので、簡単なサンプルを作るところから始めました。音声認識には「Microsoft Cognitive Speech Services」を使うことにしました。ちょっとハマったので、備忘録も兼ねて書いておきます。
#開発環境
Windows 10
Unity Ver 2019.2.17f1
Android 9.0 (Galaxy Note9)

#(1)Microsoft Cognitive Speech Servicesの準備
##Microsoft Azure の無料アカウントを作成
まず、Microsoft Azure の無料アカウントを作ります。ちょっと古いけど、この辺が参考になると思います。
「[Microsoft Azure の無料アカウントを作ってみた](
https://qiita.com/shinyay/items/a6106936b4a640ab0dc4)」

## Cognitive Servicesのプロジェクトを作る
「[Azure Cognitive ServicesのSpeech

元記事を表示

51歳から(現52)のプログラミング 備忘 Support Library API追加

#Support Library APIの追加
ネイティブのActionBarはAPIレベル21以降。Support Library の Toolbar ならAPIレベル7以降をサポートできる。

Projectのbuild.gradleファイル内にGoogle Mavenリポジトリを組み込む

“`java:
allprojects{
repositories{
google()
// もし、gradle versionが4.1以下なら、代わりに以下を使う
// maven{
// url ‘https://maven.google.com’
// }
}}
“`
次に、サポートライブラリを使用するモジュールごとに、build.gradle内のdependenciesブロックにライブラリ(v4 core-utils)を追加

“`java:build.gradle
dependencies{

implementation “com.android.support:support-core-ut

元記事を表示

[Android Studio] アプリの全画面表示についてまとめてみる(ノッチ有り無し)

# はじめに
アプリの全画面表示をしようとするとノッチの有り無しでやり方がちょっと違ったのでまとめてみます。

# 開発環境
Android Studio 3.5.3

# フルスクリーン表示の方法
これは、ノッチ有り無しに関わらず同じです
`styles.xml`にて、以下を記述します

“`xml:styles.xml

“`

次に`AndroidManifest.xml`でthemeを設定すればOKです

“`xml:

元記事を表示

Flutter EventChannel APIの使い方

# はじめに

Flutter (Dart) とプラットフォーム (Android/iOSなど) 間の通信/呼び出しAPIについてまとめています。

* [MethodChannel](https://qiita.com/kurun_pan/items/db6c8fa94bbfb5c0c8d7)
* EventChannel ← 今回
* [MessageChannel](https://qiita.com/kurun_pan/items/9c2b6fdba602203f8f83)

## 1. EventChannelとは

プラットフォーム側からFlutter (Dart) 側にイベント通知するためのAPIの一つである[EventChannel](https://api.flutter.dev/flutter/services/EventChannel/EventChannel.html)について解説します。

加速度センサーの値の変化やプラットフォーム側のイベントサイクルの変化など、プラットフォーム側で定期的もしくは突発的に発生するイベントをFlutter側に通知するためのAPI

元記事を表示

OTHERカテゴリの最新記事