- 0.0.1. Androidーイベントリスナ
- 0.0.2. [Unity][Fee]UnityAndroidからContent://のファイルを読み込む。
- 0.0.3. AndroidでRealmStudioを使ってdefault.realmの中身を見る
- 0.0.4. Android + Termux で Vulkan 開発を行うメモ
- 0.0.5. android studioのJavaの場所
- 0.0.6. 技術書典のスゝメ 〜技術同人誌を読もう!〜
- 0.0.7. 未経験から半年で初Androidアプリ制作!女性プログラマーが可愛いフリー素材探しに苦労した!!
- 0.0.8. Android HCE 調査メモ(その3)
- 0.0.9. EditText.addTextChangedListenerに便利な拡張関数が追加されていました
- 0.0.10. Android HCE 調査メモ(その2)
- 0.0.11. AndroidStudio Error3 Activity existsが出た
- 0.0.12. Android HCE 調査メモ(その1)
- 0.0.13. LiveDataを使わずにRxでPagingする
- 0.0.14. AndroidStudioのDesignタブにAttributeが表示されない
- 0.0.15. F-Droidを使ってオープンソースのAndroidアプリをインストールしよう。
- 0.0.16. オススメAdBlockツールまとめ(Chrome, Android, iOS対応)
- 0.0.17. [Android] IntentServiceによる非同期処理
- 0.0.18. build.gradleの中身を学べた話
- 1. 自分のスキルについて
- 2. 参考教材
- 3. build.gradleで指定できること
Androidーイベントリスナ
#目指す成果物
数字を入力して送信ボタンを押したら,以下のような文字列を表示させるものを作ってみましょう!
#手順
1. リスナクラスを作成する“`MainActivity.kt
package com.example.hellolistenerimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import kot
[Unity][Fee]UnityAndroidからContent://のファイルを読み込む。
#はじめに
自作ライブラリ開発日記です。
https://github.com/bluebackblue/fee_core#なにが問題なのか
「content://」から始まるファイルを読み込むためには「android.content.ContentResolver」を使用する必要がある。
VirtualFileとそうでないファイルでInputStreamの作成方法が異なる。#コード
“`cs
/** 更新。
*/
public System.Collections.IEnumerator Main(string a_uri)
{
//バイナリファイルとして開く。
Fee.File.Item t_file_item = Fee.File.File.GetInstance().RequestLoad(Fee.File.File.LoadRequestType.LoadFullPathBinaryFile,new Fee.File.Path(a_uri));//読み込み待ち。
while(t_file_item.IsBusy() == true){
yield r
AndroidでRealmStudioを使ってdefault.realmの中身を見る
## pathを通す
Android Studio > File > Other Settings > Default Project Structure… で確認する。“`zsh:.zshenv
export PATH=”/…/Android/sdk/platform-tools:$PATH”
“`## adbコマンド
そのままじゃ権限がないので、pullできるところにdefault.realmを持ってきたい。“`zsh
$ adb devices // 接続中デバイスの確認
$ adb shell
$ adb run-as// パッケージ名
$ cp -p files/default.realm /sdcard/. // とりあえずsdcardディレクトリにコピー
$ exit
$ exit
$ adb pull /sdcard/default.realm . // Desktopなど任意の場所で
“`
これでRealmStudioで開ける。
Android + Termux で Vulkan 開発を行うメモ
## 背景
* Android で Vulkan でレイトレーシングや機械学習したい.
* Android で Vulkan(C/C++)開発を効率化したい
* Gradle or Android Stuio で Java(Kotlin)経由で JNI で Vulkan とかめんどくさすぎる.
* とりあえず compute 実行でよいので, Vulkan 開発と動作チェックする仕組みを作りたいねんがんの Pixel4 + Termux で Vulkan minimal compute の実行に成功したぞ!!!! ????????????????????✌️✌️✌️✌️✌️✌️✌️✌️?????? thanks to @ilmarihei 's advice I can finally got Vulkan running on
android studioのJavaの場所
ターミナルからgradleビルドをするときにandroid studioで使っているものと同じものを使いたいと思い、Preferenceあたりを探したがなかなか見つからなかったのでメモ。
結論としてはAndroidStudioのPreferenceではなく
**File > Project Structure > SDK Location**
のJDK locationに見つけた。
下記のように.zshrcに追加した。“`zsh:.zshrc
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
“`
技術書典のスゝメ 〜技術同人誌を読もう!〜
# はじめに
年末年始にかけて、かなり自分的に良い技術同人誌と出会えたので、その紹介を兼ねて投稿します。
(当方AndroidエンジニアのためAndroidに話題が偏ります)# 技術書典とは?
**展**ではなく**典**です。念のため。[「技術書典」](https://techbookfest.org/)は、主にIT系の技術者が技術系の同人誌を頒布するための即売会です。**ざっくり言うと技術者向けのコミケ的なものです。**
2016年から年2〜3回ペースで開催され、今までに全7回が開催されています。頒布された本は[BOOTH](https://booth.pm/ja)で取り扱っているものも多いです。# 技術同人誌の魅力
「技術書の同人誌? なにが良いの?」と思われる人も多いかと思います。私も半年ぐらい前まではその存在すら知りませんでした。自分的に「いいね!」と思ったポイントを紹介していきます。
## 1. 最新の情報をキャッチアップできる
なんといっても技術同人誌の最大の魅力は、「**(ほぼ)現役のエンジニアが、今の活きた知識をもとに書き上げた技術書である**」とい
未経験から半年で初Androidアプリ制作!女性プログラマーが可愛いフリー素材探しに苦労した!!
##アプリをリリースの前に…
Androidアプリを初めての制作をしてみました。
最初は、就活の為の成果物としてしてアプリを作っていたのですが、やはりせっかく作ったのでGoogle Play Storeにアプリを出すことに決定!!
いざアプリをGoogle Play Storeにあげる前に問題が、、、、
**画像の著作権ガン無視問題**
アプリをGoogle Play Storeに出す気がなかったので忘れていました。
初心者が忘れがちなミスだと思います。
皆さんは作るときに気を付けてくださいね。
私が使ったフリー素材サイトを下に載せてますが、、、**もっと可愛い素材が欲しい**:frowning2:
プログラマーの皆様、コメントでぜひおすすめのフリー素材サイト教えて頂けると幸いです:exclamation:##フリー素材が探せるサイト
私は、急いで画像のすり替えを行いました。
そこで私が使ったフリー素材を探せるサイトのリンクをシェアするので、ぜひ参考にしてください。
フリー素材をダウンロードできても商業利用はできない場合があるので**利用規約**を必ず確認してください。[ill
Android HCE 調査メモ(その3)
# 目的
C#アプリでもHCEと通信できることを確認します。# 環境
今回は以下の機種で動作確認しました。
#### Android側
– ビルド環境
– Android Studio 3.5.3– 端末
– Sony SO-3L
– Android 9.0 (API level 28)#### PC側
– NFCリーダ
– ACR1251CL-NTTCom
(PC/SCモードで使用)
– OS
– Windows 10 64bit
– ビルド環境
– Visual Studio 2019
– 言語
– C## Android側アプリ
過去の記事を参照ください。
[Android HCE 調査メモ(その1)](https://qiita.com/tkhr68000/items/66de411d5eb007fea3ca)
AIDは「F222222222」となっています。# PC側アプリ
とりあえず、.NET Core コンソールアプリで作成することにします。
(GUI等は後々…)## プロジェクト開始
Vis
EditText.addTextChangedListenerに便利な拡張関数が追加されていました
環境
“`build.gradle
implementation ‘androidx.core:core-ktx:1.1.0’
“`EditTextの入力中文字列を取得する時に使うTextWatcherは3つのコールバック関数をもつインターフェースです。
“`kotlin
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}override fun afterTextChanged(s: Editable?) {
}
})
“`| コールバック | 説明
Android HCE 調査メモ(その2)
# 目的
Android HSEに対し、PC(PC/SC)からの接続を確認します。# 環境
今回は以下の機種で動作確認しました。
#### Android側
– ビルド環境
– Android Studio 3.5.3
– 端末
– Sony SO-3L
– Android 9.0 (API level 28)#### PC側
– NFCリーダ
– ACR1251CL-NTTCom
(PC/SCモードで使用)
– OS
– Windows 10 64bit
– 言語
– Python 3.8.0# Android側
前回の記事を参照ください。
[Android HCE 調査メモ(その1)](https://qiita.com/tkhr68000/items/66de411d5eb007fea3ca)AIDは「F222222222」となっています。
# HSE通信確認アプリ
簡単に確認するため、pythonを使って試してみます。
## モジュール追加
pythonからPC/SCを操作するため、モジュール追加します。
pysca
AndroidStudio Error3 Activity existsが出た
#まずここではまった
私の開発環境は基本Macです。
私はいつもアプリを作って正常なビルドをしているか確かめるときは必ず、エミュレータを使用します。
しかし、スマホで一度使用してみたいと思い、実機ビルドするとタイトルのような文字が出てビルドできませんでした。開発環境
・デバイス HUAWEI P30 lite
・パソコン MacBook Pro
・AndroidStudio 2020/01/08現在最新のもの今回はこのエラーが出たときの私の対処法を教えよう!
#対処法
ぜひ一度やってみてください!
##その1 作り直す
私が試したことはもう一度アプリを再度**一から作り直す**ことです。
といってもコードをコピペするだけなので楽でした。でも時間を無駄にしていると考えると苦痛。。。
しかし、残念ながらやはり同じエラーが起こってしまいました。##その2 パッケージ名を変更する。
パッケージ名の変更方法はこちらのQiitaの投稿をご覧ください。(私の投稿ではありません)
[リンク]https://qiita.com/m_saeki/items/a66a21a5150444
Android HCE 調査メモ(その1)
# 目的
AndroidのHSEのサンプルを実行して、動作確認してみます。# 環境
今回は以下の機種で動作確認しました。
#### Android開発環境
– ビルド環境
– Android Studio 3.5.3#### 端末
– 1台目
– Sony SO-3L
– Android 9.0 (API level 28)
– 2台目
– Sharp SH-03J
– Android 7.1.1 (API level 25)# HSEについて
まずは、前提としてHCEについて説明します。正式なドキュメントは以下を参照してください。
[ホストベースのカード エミュレーションの概要](https://developer.android.com/guide/topics/connectivity/nfc/hce)簡単な説明をすると、Android上でユーザーの任意のアプリとNFCリーダとの通信を実現するための仕組みです。
通常、NFC通信はAndroidアプリまで通信が届きません。
NFCリーダからの通信は、通常はセキュアエレメントとの通信で完結しま
LiveDataを使わずにRxでPagingする
みなさんPaging使ってますか?
公式ドキュメントを見ると、LiveDataを使わずにRxJava2を使用しても良いということだったのですが、いまいちどのように実装するのかがよくわからず試行錯誤した結果を書き残したいと思います。
##前提
– 以下の条件の方々を読者と仮定します
– AAC Pagingがどのようなものか大体わかる
– これからPagingを導入しようと思っている
– LiveDataは導入していない##やること
####AndroidXの場合
>***DataSourceFactory#toObservable*でPagedListのObservableを作成する**
>or
>***LivePagedListBuilder*を使うかわりに*RxPagedListBuilder*を使う**####AndroidXじゃない場合
>***LivePagedListBuilder*を使うかわりに*RxPagedListBuilder*を使う**まず、PagingのRxサポートはオプショナルなのでbuild.gradleに追加
AndroidStudioのDesignタブにAttributeが表示されない
記事にするのも馬鹿らしい話なんですが、同じ所で躓いて時間の無駄遣いをする人が生まれないように戒めを込めて書いておきます。
#戒め
AndroidStudioで追加ダウンロードが必要なコンポーネントを使う時は、一度AndroidStudioを再起動する。そうしないと、DesignタブにAttributeが表示されなかったり、Textタブで予測変換が効かなくなります。##問題発生時の状況
[TextInputLayout](https://qiita.com/hkurokawa/items/baf0dca930a32a5a7f92)なんて便利な物を知って、意気揚々とダウンロードし配置しました。
※画像はGridLayoutのものですが、やっていることは一緒です。さて、
F-Droidを使ってオープンソースのAndroidアプリをインストールしよう。
## F-Droidとは?
> F-DroidはAndroidに対応したソフトウェアリポジトリおよびアプリケーションストアである。Google Playと機能は類似するが、扱っているのはフリーかつオープンソースのソフトウェアのみである。
[Wikipediaより](https://ja.wikipedia.org/wiki/F-Droid)
## インストール方法
https://f-droid.org/
からインストール!!
## おすすめアプリ
オープンソースの広告ブロッカー
[DNS66](https://f-droid.org/en/packages/org.jak_linux.dns66/)
をインストールしてAndroid端末から広告を一掃しよう!!!
#まとめ
オープンソースのアプリで快適なインターネットライフを。
オススメAdBlockツールまとめ(Chrome, Android, iOS対応)
広告がうざいならAdBlockツールを入れましょう。
紹介するのは全て私が1年以上使用しているAdBlockツールです。### Chrome
[uBlock Origin](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm)
– GPLv3
– 無料で使えます。
– [参考記事](https://qiita.com/AKKYM/items/e09e80bc8c30e189524d)### Android
[DNS66](https://f-droid.org/en/packages/org.jak_linux.dns66/)
– GPLv3
– 無料で使えます。
– アプリ内の広告を消すことができます。
– [参考記事](https://qiita.com/AKKYM/items/b27046395ef722cdb2d5)### iPhone
[AdBlock](https://apps.apple.com/jp/app/adblock
[Android] IntentServiceによる非同期処理
前回BindServiceについて紹介した。https://qiita.com/QiitaD/items/5c313076b7b99823ce1a
次にBindServiceを使ってHTTP通信を行いたかったが、非同期処理できなかったので、今回はIntentServiceで実装してみたいと思う。##作るもの
TomCatを使ってサーバから、ボタン押下により0~7の数をランダムに取得し、表示するプログラム。
以前AsyncTaskを用いて似たようなことをしたので参考にして頂きたい。・AsyncTaskを継承したクラス内に書いたHTTP通信プログラム
https://qiita.com/QiitaD/items/79228417a68c51090a4e・サーバ側のプログラム
https://qiita.com/QiitaD/items/b60a0baecbd1fa1d3ce8##使い方
IntentServiceを呼び出すにはstartService()を使う。~~~java
final Intent intent = new Intent(MainActivity.t
build.gradleの中身を学べた話
自分のスキルについて
学生。インターン中。
普段はWebアプリ開発でPHP(Laravel)とかJSとか触ってます。
あと研究用にPythonやってます。
Kotlinの実務経験は0。でもゆくゆくはAndroidエンジニアになりたかったり?参考教材
https://codelabs.developers.google.com/codelabs/kotlin-android-training-images-compat/index.html?index=..%2F..android-kotlin-fundamentals#5
https://developer.android.com/studio/build/shrink-code?hl=ja
build.gradleで指定できること
モジュールレベルのbuild.gradle
“`build.gradle
android {
compileSdkVersion 29
buildToolsVersion “29.0.2”
defaultConfi
Coil+Twitter4JでTwitterのDM添付画像をロードする
# やりたいこと
Android用の画像読み込みライブラリ [Coil](https://coil-kt.github.io/coil/) を使うと、下記の1行だけで任意のURLの画像をダウンロードして `ImageView` に表示することができます。
“`Kotlin
imageView.load(imageUrl)
“`Twitterクライアントのようなアプリでツイートの添付画像を表示する場合は上記のコードで十分ですが、DM(メッセージ)の添付画像の場合は[認証が必要](https://developer.twitter.com/en/docs/direct-messages/message-attachments/guides/retrieving-media)となるので 401 が返ってきてしまいます。
“`
coil.network.HttpException: HTTP 401:
at coil.fetch.HttpUrlFetcher.fetch(HttpUrlFetcher.kt:57)
at coil.fet
アクティビティにあらかじめ書かれたソースコード
初学者です。個人的な勉強のために書きました。
##アプリ起動時に実行されるメソッド
“`HelloSampleActivity.java
package com.websarva.wings.android.hellosample;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;public class HelloSampleActivity extends AppCompatActivity {
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//————–1
setcontentView(R.layout.activity_hello_sample);//–2
}
}
“`・上記のコードは、あらかじめ記述されているもの
・onCreateメソッドは、Androidアプリが実行さ