開発環境設定†
インストールしたバージョン†
- Android Studio 4.0.1 (2020-07-25)
アプリケーションの SDK バージョンの確認と設定†
- [File] → [Project Structure (Ctrl+Alt+Shift+S)] で Default Config タグ
Linux 環境での Android Studio の起動†
[local] munakata:~/android-studio/bin$ ./studio.sh
git 連携†
- [VCS] → [Enable Version Control Integration...] を選択
- プルダウンから [Git] を選択
- この時点で project 配下に git ディレクトリ (=local repo) が作られる
- Android Studio の左下に [Version Control] タブが出現し、ここからファイルのコミットや修正の取り消し(Revert)が出来るようになる
- remote repo 登録
- [VCS] → [Git] → [remote] ( ssh://munakata@kgb.hmuna.com:8823/mnt/raid_vol/home/git/repos/jade_db )
- git push への対応
- git clone で新規プロジェクトを開始
- [File] → [New] → [Project from Version Control] → [Git]
CPU が仮想化対応しているかの確認(0 が戻る場合は仮想化に対応していない)†
[local] munakata:~/android-studio/bin$ egrep -c '(vmx|svm)' /proc/cpuinfo
8
- ここで 0 以外が帰っても BIOS の仮想化支援が有効になっていないと Linux で KVM が使えない(と、AVD が起動できない)
Linux 環境で /dev/kvm へのアクセス権付与(しないと avd が立ち上がらない)†
[local] munakata:~/android-studio/bin$ ls -la /dev/kvm
crw-rw---- 1 root kvm 10, 232 7月 27 11:03 /dev/kvm
[local] munakata:~/android-studio/bin$ grep kvm /etc/group
kvm:x:130:
[local] munakata:~/android-studio/bin$ sudo adduser $USER kvm
ユーザー `munakata' をグループ `kvm' に追加しています...
ユーザ munakata をグループ kvm に追加
完了。
[local] munakata:~/android-studio/bin$ grep kvm /etc/group
kvm:x:130:munakata
AVD (仮想デバイス) の起動に失敗する場合 → Graphics アクセラレーションの設定を確認†
- Software OpenGLES 2.0 を選択して起動する場合ライブラリーの設定に問題がある
- 公式ドキュメント Android Emulator のハードウェア アクセラレーションを設定する
- Ubuntu ではデフォルトで OSS 版の Nouveau NIVIDIA GPU ドライバーが使われているが、これだと AVD のアクセラレーションが出来ない
- NVIDIA 製の GPU ドライバーに切り替える必要あり
- エラーメッセージを検索する時など英語の方が便利(ヒット件数がずっと多い)な事が多いので
- C:\Users\magu7\.AndroidStudio4.0\config\studio64.exe.vmoptions を編集して最後の2行をコメントアウトする
# Custom VM options (Generated by Pleiades Installer)
# See https://pleiades.io/pages/pleiades_jetbrains_manual.html
#-Xms256m
#-Xmx1280m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-Djna.nosys=true
-Djna.boot.library.path=
#-Xverify:none
#-javaagent:C:\Users\magu7\.AndroidStudio4.0\config\jp.sourceforge.mergedoc.pleiades\pleiades.jar
Android Studioで実機デバック†
- 実機端末での操作
- 端末を開発者モードに設定 ([設定] → [システム] → [詳細設定] → [端末情報] でビルド番号の連打)
- Android 9(API レベル 28)以上: [設定] → [システム] → [詳細設定] → [開発者向けオプション] → [USBデバッグ]
- 開発マシンでの操作(Ubuntu)
- Android Studio での操作
- [Run] → [Edit Configurations] → [Deployment Target Options] で TargetをUSB deviceに設定
- 緑矢印(RUN)を押すと、デバッグターゲットを選択する画面が出るので 実機を選択
- 実機にアプリがインストールされ(なので、USB 外しても実行可能)アプリが起動する
- Android Stuido 実行中に「」のワーニングが出たので対処した
アプリ開発†
ソフトキーボードを消す処理†
ネイティブ アクションバー(Android 5.0(API レベル 21)以降のマテリアルデザイン準拠)†
Actionbar の利用(は、デフォルト設定で利用可能)・・・・ 今回はこれでいこうと考えたが、既に古いようだ†
Toolbar の利用(にはローカル拡張が必要)・・・・ なので、こちらに対応する必要がありそう†
- Android5.0で導入されたToolBar
- ToolBar was introduced in Android Lollipop, API 21 release and is the spiritual successor of the ActionBar
- ActionBarはレイアウトに記載しなくても表示される
- ToolBarは自分でレイアウトに追加する
- ToolBarは自分でレイアウトに追加する分、カスタマイズやActivity毎の表示・非表示が可能になります。
- 古い記事では <android.support.v7.widget.Toolbar> を追加しているが、このTAG は Obslate
- AndroidX support library が組み込まれている事を確認
- /home/munakata/AndroidStudioProjects/MyApp2/app/build.gradle
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0' <----------------------------------
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' <---------------------
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
- showAsAction
- itemタグのapp:showAsAction属性には以下の3コの値がある。
| never | アクションバーに表示させずにオーバーフローメニュー に格納する |
| always | 常にアクションバーに表示する(あまりオススメしない) |
| ifRoom | アクションバーに余裕があるときのみ表示する |
参考 URL†
SQLite3 (この作業は Windows 環境でやったのでエンコードとか面倒だった)†
データベースの生成†
C:\Users\munakata\Source Code\Android\Jade_DB>sqlite3 jade.db
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
sqlite> create table videos(_id integer primary key, brand integer, title text, type integer, release text);
sqlite> .table
videos
- Android Studio のプリジェクト配下に Asset フォルダーを作成し db ファイルをコピー
結局 Linux 環境でデータベースを作成†
munakata@mvc:~/winshare/Android_test$ nkf -Lu --overwrite createTable.sql
munakata@mvc:~/winshare/Android_test$ file createTable.sql
createTable.sql: ASCII text
munakata@mvc:~/winshare/Android_test$ nkf -Lu --overwrite normal.txt
munakata@mvc:~/winshare/Android_test$ file normal.txt
normal.txt: UTF-8 Unicode text
munakata@mvc:~/winshare/Android_test$ sqlite3 NormalDB.db < createTable.sql
munakata@mvc:~/winshare/Android_test$ sqlite3 NormalDB.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> .tables
android_metadata videos
sqlite> .mode csv
sqlite> .import normal.txt videos
sqlite> select * from videos;
1,1,"増幅",2020-05-01
2,1,"壁越し推量",2020-04-27
3,1,"種牛",2020-04-27
4,1,"首脳会議",2020-04-27
5,1,"スクェア",2020-04-27
6,1,"反逆者",2019-04-27
7,1,"リチャード三世",2020-04-27
Android で SQL を利用する実装†
排他的選択ボタンの配置†
- Open AVD manager
- Click New Hardware Profile
- Enter suitable device name e.g. "Pixel 5 API 30"
- Screen size is 6.0", Resolution is 1080 x 2340
- In the Default Skin dropdown, try Pixel 4 XL (this adds the black surround to the AVD. Note that if you use "No skin", it doesn't add the surround shape to the resulting AVD, but you get a useful heading at the top showing its name)
- I accepted the rest of the defaults
- Click Finish
- Click Next to get to System Image dialog
- Select suitable image e.g. R - API 30
- Click Next
- Click Finish
参考情報†
参考 URL 諸々†