開発環境設定†
インストールしたバージョン†
- Android Studio 4.0.1 (2020-07-25)
アプリケーションの SDK バージョンの確認と設定†
- [File] → [Project Structure (Ctrl+Alt+Shift+S)] で Default Config タグ
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]
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
- エラーメッセージを検索する時など英語の方が便利(ヒット件数がずっと多い)な事が多いので
- 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 外しても実行可能)アプリが起動する
アプリ開発†
- 「アクティビティが開始」されると onCreate、onStart、onResume メソッドが順に呼ばれて「実行中」の状態になる
- onCreate でActivityが初めて生成され、Activityの初期化は全てここに書く。つまり全て初期化される。
- onStart は Activityが開始された時に呼ばれる。Activity生成されたがまだユーザーには見えない状態
- onPause は同じアプリの別のアクティビティが開始されようとしたり別のアプリのアクティビティが開始され、元のアクティビティが見えなくなる前に呼ばれる
- onResume は Activityが表示された時、Pause からの戻りで再表示された場合も含む
- onDestroy は Activity を終了する時

ソフトキーボードを消す処理†
ネイティブ アクションバー(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 を利用する実装†
排他的選択ボタンの配置†
参考情報†
参考 URL 諸々†