1. 程式人生 > >心·跡alpha階段 代碼結構及技術難點簡介

心·跡alpha階段 代碼結構及技術難點簡介

容易 activity ble 判斷 andriod開發 src res spa 問題

我們的產品是安卓端app,所以目前主要就是用Android Studio來進行代碼開發。

Android Studio的項目的結構還是比較清晰的,如下圖,主要就是java文件夾內的代碼部分(.java)以及res文件夾內的布局部分 (.xml)。

技術分享圖片

一、Java部分

(一)數據庫部分

這一部分主要是數據庫方提供給UI小組的一系列需要用到並存儲到數據庫中的類。

UI小組可以不管數據庫的內部邏輯,直接構造對象並用其中的方法,如下圖。

技術分享圖片

(二)UI部分

這一部分主要就是前端UI的一些邏輯(主要是各個Activity)以及另外需要用到的其他一些類(如Adapter等),如下圖。

技術分享圖片 可以看到,雖然我們的app比較簡單,但是實際上實現起來代碼量確實不小。其中比較難及復雜的部分在後面部分會介紹。

二、布局部分

這部分基本上是和UI部分的代碼對應,每一個界面以及其中的一些部件都需要布局文件,如下圖。

技術分享圖片

(一)圖片素材

圖片主要是在drawable文件夾內,主要就是一些菜單以及按鈕上要用到的小圖標,還有一些背景圖片。

(二)xml文件

包括layout文件夾以及menu文件夾裏的文件,如下圖。

技術分享圖片

三、技術難點(部分)

說是技術難點其實就是開發過程中的一些感悟。

實際進行安裝開發後,才會發現,那些看起來比較簡單的功能,實現起來卻並不簡單,這裏主要就選一兩個來隨便講一講。

首先,最復雜的一部分就是DiaryWriteActivity,從代碼量(java部分目前1600行)上也能看出。

根據美工的建議,我們把這個界面改成了app的主界面。這樣就帶來了一系列比較麻煩的問題。

因為這個界面既要展示日記,還要能編輯日記、新建日記。不同的情況就會導致不同的布局設置,就需要在代碼中對頁面布局進行動態設置。

再就是從不同界面都能進入這個界面,如搜索結果、時間軸、日歷等等,這些界面進入雖然本質上沒有什麽區別,但是一個問題就是如果我們要查看前後日記,我的理解應該就是比如搜索結果進入,查看的前後日記的那個list應該就是搜索結果的那個範圍,這就需要根據進入的來源去進行一些相應的判斷。

還有比如我們把前後按鈕改成滑動,這個滑動看起來簡單,實現起來也不是幾行代碼的事情,另外還要考慮到某些情況應該要禁止滑動相應等等。

還有就是一個返回的問題,從不同界面返回的話結果應該也不是完全一樣,這就需要在onRestart()裏再做一些處理。

其實上面說的這些也不是什麽真正的“難點”,就是需要註意的地方非常多,一個地方少了個條件判斷,就容易出現動不動閃退的結果,給用戶帶來不好的體驗。

還有一個比較難的地方就是富文本,這個也是一直困擾我們小組同學的地方。一方面是存儲上的問題,還有就是圖片上的一些問題。比如出現來插入圖片在有的手機上會閃退的情況。

除了上面說的這個DiaryWriteActivity,還有一些難的地方就是想實現的一些效果很難做到或者說良心的教程很難找到。比如現在日記界面滑動切換前後日記,只是相應滑動事件改變日記內容,但如果我是真正想實現卡片式有滑動的效果就不知從何下手。這也只是舉個例子,還有就是比如我前兩天才發現安卓自帶圓形約束布局,我之前還傻傻地純靠自己調間距來實現。

確實像我們這樣從零開始接觸安卓開發確實會遇到各種問題,時不時還掉進各種坑,感覺如果想真正說andriod開發有一定了解還任重而道遠。

心·跡alpha階段 代碼結構及技術難點簡介