2024年1月2日 星期二

ANDROID STUDIO & KT

ANDROID STUDIO & KT(連結)
ANDROID STUDIO & BLE(連結)

ANDROID STUDIO

版本giraffe 2022.3.1 patch 3--> 安裝
( JETPACK 連結 完全不知道是什麼 )
開新專案不成功,因為要先安裝SDK才能開專案--> 安裝
編譯不成功,因為要安裝gradle--> 安裝
程式不能編譯,因為KT的環境沒弄好--> 安裝
終於編譯成功。到這個階段覺得,新版IDE功能雖然強大但安裝門檻實在很高,強烈懷疑一般開發者真能走到這步驟媽?

啟動程式
體模擬器:安裝失敗(加速顯示不能用,AVD不能用,應該是這台筆電沒有專業顯卡)
實體手機執行:舊SONY XPERIA(ANDROID 8.0最高版本,已設為開發模式)-->安裝成功

螢幕截圖和錄影
logcat->有螢幕截圖功能。(連結)
logcat->有螢幕錄影功能。可以錄製三分鐘影片。

LOG資訊
Log.d("KAYJEAN", "get name " + device.name)
出現在logcat

KT(kotlin)語法

新程式語法(感覺是介於PYTHON和JAVA兩者之間),連結

KT APP專屬設定

入口架構

AndroidManifest.xml資料
設定activity : 
        <activity
            android:name="com.elegant.access.NavActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.Elegant.Access.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
設定service : 
        <service android:name="com.elegant.access.service.BluetoothLeService" android:enabled="true"/>

桌面按鈕

精簡的Activity範例Custom List View

基本範例,兩個頁面切換,首先是條列(LISTVIEW),點選任何一個後,進入詳細頁面。可用範例(連結 連結 連結)
概念符合現在DEMO需要,條列是每次施打的時間和成功與否,點選進入後,可以看到當次施打詳細資料。項目包括
the sequence of operation,
date/time
device operation 
  1. device activation, 
  2. start of delivery, 
  3. progress of delivery, 
  4. completion of delivery, 
  5. error report.
detail history log
  1. battery status, 
  2. bluetooth connect status when delivery, 
layout的內容比照以往JAVA,還是放在res/layout下,XML格式,設定個名稱,右上方可以切換XML內容或是UI設計。


Layout設計

以Fragment為主的設計

新的UI設計概念,是以fragment為主,若有不同頁面,可以透過navigator切換到不同activity。檢視此範例。

第一頁:起始動畫(SPLASH)。
NAVACTIVITY裡面使用 activity_nav_main ( nav_graph.xml  )

第二頁:開始畫面(StartFragment)  StartContent->LogoCard 按下button跳到下一頁

第三頁:資料出現在DeviceListContent,資料來源為DeviceListBoardCast會將資訊發佈,如果在這邊設定過濾條件,應該就可以過濾想要看到的那類裝置。


每個項目可被點擊
fun BleDeviceCard(bleDevice: BleDevice, navigateToLogin: (BleDevice) -> Unit) {
    Column(
        modifier = Modifier
            .clickable(onClick = { navigateToLogin(bleDevice) })

目前就是需要一個logbook,以及每個logbook點下去看到不同畫面。可以找個範例。

Jetpack compose

新的版面設計概念,不依靠XML,物件由程式依序寫入而生成。
基礎教學 連結,image 連結,progress bar  連結 連結

Reminder

the app could also send reminders to patients before it is time to receive the injection.

DataBase



沒有留言:

張貼留言