日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

云炬Android开发笔记 3-1项目架构初始化

發(fā)布時間:2025/3/15 Android 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云炬Android开发笔记 3-1项目架构初始化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、項目架構(gòu)初始化

1、我們的應(yīng)用只有一個activity,它里面是多個fragment進行切換的,這樣的好處是應(yīng)用會非常順滑,并且一個activity也可以進行很多全局的處理。

在類前加上final字段,說明不允許繼承和修改該類。應(yīng)用一般的做法是創(chuàng)建一個類,繼承Application,在onCreate()方法中進行初始化,然后在application屬性中將name屬性標上,這是通常的一個做法,但是這種做法很煩,需要寫很多地方。那么應(yīng)該如何做呢?我們可以把一些全局信息存儲在一個map里面,包括applicationContext,然后在任何引用了這個庫的業(yè)務(wù)邏輯的module里面,都可以直接去使用它。

?

2、Latte:

是一個工具類,里面都是一些靜態(tài)方法。

?

3、Configurator:

進行一些配置文件的存儲,以及獲取的。

這里使用的是static final的一個類,這樣在全局初始化的時候就會進行初始化。這里使用的是WeakHashMap,它里面保存的鍵值對,在不使用的時候就會進行回收,而且非常及時。也就是說它可以最大限度地避免內(nèi)存爆滿,它比hashmap要好很多,特別是在存儲大量東西的時候。我們存儲的對象可能是一個字符串、可能是一個int值,可能是一個對象,這個時候就使用object進行存儲,這樣靈活性就比較高了。

configure():告訴我們配置已經(jīng)配置好了。

?

單例創(chuàng)建配置對象,這是一個非常安全的線程單例懶漢模式

?

withApiHost():配置Api Host

checkConfiguration():檢查配置是否完成。在寫類變量或者方法變量的時候,盡量讓它的變量不可變性達到最大化。什么叫做不可變量最大化呢?比如final關(guān)鍵字。就是說這個變量在以后的程序開發(fā)中不會再去修改它了,就用final去修飾。用final修飾呢,可以很大程度上減少本不該更改的變量。jvm虛擬機也可以對一些final和final修飾的public final修飾的一些關(guān)鍵字進行優(yōu)化。或多或少都會有一些性能的提升。其實在方法上不加final也是可以的,個人推薦還是加上。這個方法是在什么時候調(diào)用呢?當然是在程序中需要獲取這個方法的時候調(diào)用。如果沒有使用這個configure()方法的時候,就會拋出這個異常,來保證我們配置的完整性和健壯性。

?

?

getConfiguration(Enum<ConfigType>key):參數(shù)是枚舉類型,泛型是ConfigType,上面的注解是告訴編譯器,上面那個類型我是沒有檢測過的,但是并不拋出警告。當然不加這個注解也是可以的,但是會有一個黃色的東東

?

調(diào)用方式,在唯一的activity入口或者application的onCreate()方法中調(diào)用

?

如果想要加入其它配置的話,只要調(diào)用相應(yīng)的方法就可以

?

注:編寫代碼的一個規(guī)范,不管是java開發(fā)還是Android開發(fā),static final類在聲明的時候,名字需要大寫,并且需要下劃線來分割,這是一個良好的習慣。

關(guān)于單例模式,如果要使用懶漢模式的話,要不然就使用雙重校驗鎖,也就是syncronized關(guān)鍵字來防止它的線程沖突,因為在正常情況下,用懶漢模式寫的一般都是有問題的。要么就是用枚舉類來進行統(tǒng)一的初始化。或者一種比較優(yōu)雅的方式,就是靜態(tài)內(nèi)部類的初始化。

?

?

4、枚舉類ConfigType

API_HOST:用來配置網(wǎng)絡(luò)請求的域名

APPLICATION_CONTEXT:整個應(yīng)用的上下文

CONFIG_READY:初始化或者配置完成了沒有

ICON:用來配置我們自己的一些初始化項目

?

?

5、Latte:

當調(diào)用latte的init()方法時,其實就是將配置項傳入到Configurator里面進行一些相應(yīng)的配置

?

枚舉類在整個應(yīng)用程序中,是唯一的一個單例,并且它只能被初始化一次。也就是說在使用多線程的時候,完全可以使用枚舉類來進行一個惰性的單例初始化。也就是通俗說線程安全的懶漢模式。

總結(jié)

以上是生活随笔為你收集整理的云炬Android开发笔记 3-1项目架构初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。