一、什么叫安卓包名
比如“手機(jī)QQ”,包名就是com.tencent.mobileqq
軟件安裝完后,在/data/app(不是/system/data/app)目錄下的就是軟件的包名,后面-1,-2,就是你名列前茅次安裝或者更新安裝的意思。
二、APP如何命名,需要符合怎樣的命名規(guī)范
在Java中我們通常把具備相同或相似功能的一些類放在同一個(gè)包中,當(dāng)然 不同公司會(huì)有不同的命名方式,但大體都相同,一個(gè)好的命名應(yīng)見名知義,提高代碼可讀性,以利于后期代碼的修改與維護(hù)。下面基于我自己做項(xiàng)目中的一些感觸談?wù)勛约簩?duì)包命名規(guī)范的理解。
1、Java包命名規(guī)范
1)包(packages): 采用反寫域名命名規(guī)則,即com.xx.xxx.xxxx形式
全部使用小寫字母。一級(jí)包名為com,二級(jí)包名為xx(一般為公司或個(gè)人域名),三級(jí)包名根據(jù)應(yīng)用進(jìn)行命名,四級(jí)包名為功能模塊名。如:com.tencent.qq.activitys,這樣具備較高可讀性,一看就知道是騰訊公司QQ軟件中存放activity的包。
下面是一些常見的包命名組織方式。
com.example.app.activitys | 用來組織Activity類 |
com.example.app.base | 基礎(chǔ)共享的類,如多個(gè)Activity共享的 BaseActivity或整個(gè)應(yīng)用共享的MyApplication類 |
com.example.app.adapter | 項(xiàng)目中用到的適配器類 |
com.example.app.view | 自定義的View,如常用的TitleBarView |
com.example.app.util | 工具類,如HttpUtil,ImageUtil,F(xiàn)ileUtil |
com.example.app.db | 數(shù)據(jù)庫類,如DataBaseHelper,MessageDB |
com.example.app.service | 服務(wù)類,如GetMsgService |
com.example.app.constant | 常量類 |
com.example.app.domain/modle/entity | 元素實(shí)體類,如對(duì)應(yīng)注冊(cè)用戶信息的User類, 對(duì)應(yīng)聊天信息的TextMessage類 |
com.example.app.broadcast | 廣播服務(wù)類 |
2)資源布局文件(XML文件(layout布局文件)):全部小寫,采用下劃線命名,我一般按照組件名_功能名_屬性名方式
如:activity_login,fragment_constact_child.這樣當(dāng)你在Activity的onCreate中使用R.layout.的時(shí)候就只需篩選activity開頭的xml文件,在Fragment的onCreateView中使用R.layout.的時(shí)候就只需篩選fragment開頭的xml文件,這樣就可以縮小聚焦范圍,而且這樣的命名具備較高的可讀性,很容易知道fragment_constact_child表示某個(gè)ConstactFragment類中的child視圖。
3)控件:全部小寫,采用下劃線命名,我一般按照布局文件名_控件名_功能名_屬性名方式(前面的布局文件名可選可不選,選的話具備較高的可讀性)
如:fragment_constact_child_img_avatar表示fragment_constact_child布局文件中的用戶頭像的ImageView。
延伸閱讀:
三、如何避免包名沖突
因?yàn)榘巧贁?shù)標(biāo)識(shí),為了避免與其他應(yīng)用的包名重復(fù),產(chǎn)生沖突,您可以這樣命名:
將您的域名反轉(zhuǎn)過來作為前綴,比如如果您的域名是http://zan.com,那么包名可以用com.zan開頭,這樣可以有效的避免重復(fù)
在后面增加描述產(chǎn)品名稱的字符,比如果果您的應(yīng)用是視頻應(yīng)用,可以命名為com.zan.video
如果您沒有域名,可以使用自己的郵箱作為前綴,比如 com.163.WoDeYouXiang