安卓編碼規(guī)范

參考資料

1)纯续、https://github.com/ribot/android-guidelines

1类嗤、IDE工具:

首推使用Android Studio,因?yàn)樗怯晒雀栝_發(fā),最接近Gradle,默認(rèn)使用最新的工程結(jié)構(gòu)祝迂,已經(jīng)到release階段(目前已經(jīng)有release 2.2了),它就是為Android開發(fā)定制的铁材。并使用Square's Java and Android projects code style settings作為code style。

2奕锌、Gradle 配置

常用結(jié)構(gòu)參考Google's guide on Gradle for Android

小任務(wù)除了(shell, Python, Perl, etc)這些腳本語(yǔ)言著觉,你也可以使用Gradle 制作任務(wù)。 更多信息請(qǐng)參考Gradle's documentation惊暴。

密碼在做版本release時(shí)你app的build.gradle你需要定義signingConfigs.此時(shí)你應(yīng)該避免以下內(nèi)容:

不要做這個(gè). 這會(huì)出現(xiàn)在版本控制中饼丘。

signingConfigs {release {storeFile file("myapp.keystore")storePassword"password123"keyAlias"thekey"keyPassword"password789"}}

而是,建立一個(gè)不加入版本控制系統(tǒng)的gradle.properties文件辽话。

KEYSTORE_PASSWORD=password123

KEY_PASSWORD=password789

那個(gè)文件是gradle自動(dòng)引入的肄鸽,你可以在buld.gradle文件中使用,例如:

signingConfigs {release {try{storeFile file("myapp.keystore")storePasswordKEYSTORE_PASSWORDkeyAlias"thekey"keyPasswordKEY_PASSWORD}catch(ex) {thrownewInvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")}}}

使用 Maven 依賴方案代替使用導(dǎo)入jar包方案如果在你的項(xiàng)目中你明確使用了 jar文件油啤,那么它們可能成為永久的版本典徘,如2.1.1.下載jar包更新他們是很繁瑣的, 這個(gè)問(wèn)題Maven很好的解決了益咬,這在Android Gradle構(gòu)建中也是推薦的方法逮诲。你可 以指定版本的一個(gè)范圍,如2.1.+,然后Maven會(huì)自動(dòng)升級(jí)到制定的最新版本幽告,例如:

dependencies {compile'com.netflix.rxjava:rxjava-core:0.19.+'compile'com.netflix.rxjava:rxjava-android:0.19.+'compile'com.fasterxml.jackson.core:jackson-databind:2.4.+'compile'com.fasterxml.jackson.core:jackson-core:2.4.+'compile'com.fasterxml.jackson.core:jackson-annotations:2.4.+'compile'com.squareup.okhttp:okhttp:2.0.+'compile'com.squareup.okhttp:okhttp-urlconnection:2.0.+'}

3梅鹦、命名

3.1. 布局文件中的id命名

規(guī)則:使用駝峰命名,前綴+邏輯名稱评腺,類變量名和布局文件id名稱保持一致帘瞭,不需要下劃線分割

控件縮寫前綴

TextView/EditTexttext

ImageViewimg

Button/RadioButton/ImageButtonbtn

RelativeLayout/LinearLayout/FrameLayoutlayout

ListViewlistView

WebViewwebView

CheckBoxcheckBox

ProgressBarprogressBar

seekBarseekBar

其他控件控件名首字母縮寫作為前綴

如:TextView @+id/textTitle

如:EditView @+id/textName

如:Button @+id/btnSearch

3.2. 布局文件命名

規(guī)則:使用前綴_邏輯名稱命名,單詞全部小寫蒿讥,單詞間以 下劃線 分割。

布局類型布局前綴

Activityactivity_

Fragmentfragment_

Includeinclude_

Dialogdialog_

PopupWindowpopup_

Menumenu_

Adapterrecycler_item_

3.3. 資源文件命名

規(guī)則:使用前綴_用途命名,單詞全部小寫芋绸,單詞間以 下劃線 分割媒殉。

圖片資源文件命名

前綴說(shuō)明

bg_xxx各類背景圖片

btn_xxx這種按鈕沒(méi)有其他狀態(tài)

ic_xxx圖標(biāo),一般用于單個(gè)圖標(biāo)

bg_描述_狀態(tài)1[_狀態(tài)2]用于控件上的不同狀態(tài)

btn_描述_狀態(tài)1[_狀態(tài)2]用于按鈕上的不同狀態(tài)

chx_描述_狀態(tài)1[_狀態(tài)2]選擇框摔敛,一般有2態(tài)和4態(tài)

第三方資源文件廷蓉,不管在value、drawable

必須攜帶第三方資源前綴

umeng_socialize_style.xml

pull_refresh_attrs.xml

3.4. 類和接口命名

規(guī)則:使用駝峰規(guī)則马昙,首字母必須大寫桃犬,使用名詞或名詞詞組。要求簡(jiǎn)單易懂行楞,富于描述攒暇,不允許出現(xiàn)無(wú)意義或錯(cuò)誤單詞。

類描述例如

Application類Application為后綴標(biāo)識(shí)XXXApplication

Activity類Activity為后綴標(biāo)識(shí)閃屏頁(yè)面類SplashActivity

解析類Handler為后綴標(biāo)識(shí)

公共方法類Utils或Manager為后綴標(biāo)識(shí)

線程池管理類ThreadPoolManager

日志工具類LogUtils

數(shù)據(jù)庫(kù)類以DBHelper后綴標(biāo)識(shí)MySQLiteDBHelper

Service類以Service為后綴標(biāo)識(shí)播放服務(wù):PlayService

BroadcastReceiver類以Broadcast為后綴標(biāo)識(shí)時(shí)間通知:TimeBroadcast

ContentProvider類以Provider為后綴標(biāo)識(shí)單詞內(nèi)容提供者:DictProvider

直接寫的共享基礎(chǔ)類以Base為前綴BaseActivity,BaseFragment

3.5. 方法的命名

規(guī)則:使用駝峰規(guī)則子房,首字母必須小寫形用,使用動(dòng)詞。要求簡(jiǎn)單易懂证杭,富于描述田度,不允許出現(xiàn)無(wú)意義或錯(cuò)誤單詞。

方法說(shuō)明

initXX()初始化相關(guān)方法解愤,使用init為前綴標(biāo)識(shí)镇饺,如初始化布局initView()

httpXX()http業(yè)務(wù)請(qǐng)求方法,以http為前綴標(biāo)識(shí)

getXX()返回某個(gè)值的方法送讲,使用get為前綴標(biāo)識(shí)

saveXX()與保存數(shù)據(jù)相關(guān)的奸笤,使用save為前綴標(biāo)識(shí)

deleteXX()刪除操作

resetXX()對(duì)數(shù)據(jù)重組的,使用reset前綴標(biāo)識(shí)

clearXX()清除數(shù)據(jù)相關(guān)的

isXX()方法返回值為boolean型的請(qǐng)使用is或check為前綴標(biāo)識(shí)

processXX()對(duì)數(shù)據(jù)進(jìn)行處理的方法李茫,盡量使用process為前綴標(biāo)識(shí)

displayXX()彈出提示框和提示信息揭保,使用display為前綴標(biāo)識(shí)

drawXXX()繪制數(shù)據(jù)或效果相關(guān)的,使用draw前綴標(biāo)識(shí)

3.6. 變量命名

規(guī)則:使用駝峰規(guī)則魄宏,首字母必須小寫秸侣,使用名詞或名詞詞組。要求簡(jiǎn)單易懂宠互,富于描述味榛,不允許出現(xiàn)無(wú)意義或錯(cuò)誤單詞。

成員變量命名予跌,自定義變量前添加m前綴搏色,布局控件變量不用添加m前綴

常量命名,全部大寫券册,單詞間用下劃線隔開

4频轿、資源文件 Resources

命名遵循前綴表明類型的習(xí)慣垂涯,形如type_foo_bar.xml。例如:fragment_contact_details.xml,view_primary_button.xml,activity_main.xml.

組織布局文件若果你不確定如何排版一個(gè)布局文件航邢,遵循一下規(guī)則可能會(huì)有幫助耕赘。

考慮使用Designtime attributes 設(shè)計(jì)時(shí)布局屬性,Android Studio已經(jīng)提供支持膳殷,而不是硬編碼android:text(譯者注:墻內(nèi)也可以參考stormzhang的這篇博客鏈接)操骡。

作為一個(gè)經(jīng)驗(yàn)法則,android:layout_****屬性應(yīng)該在 layout XML 中定義,同時(shí)其它屬性android:****應(yīng)放在 style XML中。此規(guī)則也有例外赚窃,不過(guò)大體工作的很好册招。這個(gè)思想整體是保持layout屬性(positioning, margin, sizing) 和content屬性在布局文件中,同時(shí)將所有的外觀細(xì)節(jié)屬性(colors, padding, font)放在style文件中勒极。

例外有以下這些:

android:id明顯應(yīng)該在layout文件中

layout文件中android:orientation對(duì)于一個(gè)LinearLayout布局通常更有意義

android:text由于是定義內(nèi)容是掰,應(yīng)該放在layout文件中

有時(shí)候?qū)ndroid:layout_width和android:layout_height屬性放到一個(gè)style中作為一個(gè)通用的風(fēng)格中更有意義,但是默認(rèn)情況下這些應(yīng)該放到layout文件中河质。

使用styles幾乎每個(gè)項(xiàng)目都需要適當(dāng)?shù)氖褂胹tyle文件冀惭,因?yàn)閷?duì)于一個(gè)視圖來(lái)說(shuō)有一個(gè)重復(fù)的外觀是很常見的。 在應(yīng)用中對(duì)于大多數(shù)文本內(nèi)容掀鹅,最起碼你應(yīng)該有一個(gè)通用的style文件散休,例如:

@dimen/font_normal@color/basic_black

應(yīng)用到TextView 中:

你或許需要為按鈕控件做同樣的事情,不要停止在那里乐尊。將一組相關(guān)的和重復(fù)android:****的屬性放到一個(gè)通用的style中戚丸。

將一個(gè)大的style文件分割成多個(gè)文件你可以有多個(gè)styles.xml文件。Android SDK支持其它文件扔嵌,styles這個(gè)文件名稱并沒(méi)有作用限府,起作用的是在文件 里xml的標(biāo)簽。因此你可以有多個(gè)style文件styles.xml,style_home.xml,style_item_details.xml,styles_forms.xml痢缎。 不用于資源文件路徑需要為系統(tǒng)構(gòu)建起的有意義胁勺,在res/values目錄下的文件可以任意命名。

colors.xml是一個(gè)調(diào)色板在你的colors.xml文件中應(yīng)該只是映射顏色的名稱一個(gè)RGBA值独旷,而沒(méi)有其它的署穗。不要使用它為不同的按鈕來(lái)定義RGBA值。

不要這樣做

#FFFFFF#2A91BD#5F5F5F#939393#FFFFFF#FF9D2F...#323232

使用這種格式嵌洼,你會(huì)非常容易的開始重復(fù)定義RGBA值案疲,這使如果需要改變基本色變的很復(fù)雜。同時(shí)麻养,這些定義是跟一些環(huán)境關(guān)聯(lián)起來(lái)的褐啡,如button或者comment, 應(yīng)該放到一個(gè)按鈕風(fēng)格中,而不是在color.xml文件中鳖昌。

相反备畦,這樣做:

#FFFFFF#323232#888888#dddddd#999999#27D34D#2A91BD#FF9D2F#FF432F

向應(yīng)用設(shè)計(jì)者那里要這個(gè)調(diào)色板低飒,名稱不需要跟"green", "blue", 等等相同。 "brand_primary", "brand_secondary", "brand_negative" 這樣的名字也是完全可以接受的萍恕。 像這樣規(guī)范的顏色很容易修改或重構(gòu)逸嘀,會(huì)使應(yīng)用一共使用了多少種不同的顏色變得非常清晰车要。 通常一個(gè)具有審美價(jià)值的UI來(lái)說(shuō)允粤,減少使用顏色的種類是非常重要的。

像對(duì)待colors.xml一樣對(duì)待dimens.xml文件與定義顏色調(diào)色板一樣翼岁,你同時(shí)也應(yīng)該定義一個(gè)空隙間隔和字體大小的“調(diào)色板”类垫。 一個(gè)好的例子,如下所示:

22sp18sp15sp12sp40dp24dp14dp10dp4dp60dp40dp32dp

布局時(shí)在寫 margins 和 paddings 時(shí)琅坡,你應(yīng)該使用spacing_****尺寸格式來(lái)布局悉患,而不是像對(duì)待String字符串一樣直接寫值。 這樣寫會(huì)非常有感覺榆俺,會(huì)使組織和改變風(fēng)格或布局是非常容易售躁。

避免深層次的視圖結(jié)構(gòu)有時(shí)候?yàn)榱藬[放一個(gè)視圖,你可能嘗試添加另一個(gè)LinearLayout茴晋。你可能使用這種方法解決:

即使你沒(méi)有非常明確的在一個(gè)layout布局文件中這樣使用陪捷,如果你在Java文件中從一個(gè)view inflate 到其他views當(dāng)中,也是可能會(huì)發(fā)生的诺擅。

可能會(huì)導(dǎo)致一系列的問(wèn)題市袖。你可能會(huì)遇到性能問(wèn)題,因?yàn)樘幚砥鹦枰幚硪粋€(gè)復(fù)雜的UI樹結(jié)構(gòu)烁涌。 還可能會(huì)導(dǎo)致以下更嚴(yán)重的問(wèn)題StackOverflowError.

因此盡量保持你的視圖tree:學(xué)習(xí)如何使用RelativeLayout, 如何optimize 你的布局和如何使用標(biāo)簽.

小心關(guān)于WebViews的問(wèn)題.如果你必須顯示一個(gè)web視圖苍碟, 比如說(shuō)對(duì)于一個(gè)新聞文章,避免做客戶端處理HTML的工作撮执, 最好讓后端工程師協(xié)助微峰,讓他返回一個(gè) "" HTML。WebViews 也能導(dǎo)致內(nèi)存泄露當(dāng)保持引他們的Activity抒钱,而不是被綁定到ApplicationContext中的時(shí)候蜓肆。 當(dāng)使用簡(jiǎn)單的文字或按鈕時(shí),避免使用WebView继效,這時(shí)使用TextView或Buttons更好症杏。

TextView使用官方標(biāo)準(zhǔn)字體

style="@style/TextAppearance.AppCompat.Display4"style="@style/TextAppearance.AppCompat.Display3"style="@style/TextAppearance.AppCompat.Display2"style="@style/TextAppearance.AppCompat.Display1"style="@style/TextAppearance.AppCompat.Headline"style="@style/TextAppearance.AppCompat.Title"style="@style/TextAppearance.AppCompat.Subhead"style="@style/TextAppearance.AppCompat.Body2"style="@style/TextAppearance.AppCompat.Body1"style="@style/TextAppearance.AppCompat.Caption"style="@style/TextAppearance.AppCompat.Button"

5、項(xiàng)目結(jié)構(gòu)

如果項(xiàng)目比較小的話:

app——Application Activity Fragment Presenter等的頂級(jí)父類

config——API,常量表等

model——數(shù)據(jù)層

entities——數(shù)據(jù)模型

presenter——MVP的P

view——MVP的V

utils——工具類集合

widget——各個(gè)可復(fù)用View集合

如果項(xiàng)目比較大瑞信,上面的方式一定會(huì)造成presenter和view里近百個(gè)文件厉颤。 推薦下列方式:

app

config

model

entities

module——將界面層以功能模塊分配包。

launch

main

account

news

music

……

utils

widget

#6凡简、配置主題

##6.1 先在color.xml中寫好需要的顏色:

#ff5722#673AB7#311B92#fff#888888#dddddd#999999

注意color.xml是配色表逼友。應(yīng)該是描述顏色而不是對(duì)字體顏色精肃,背景顏色等的定義。這樣能防止相近的顏色重復(fù)定義帜乞,而導(dǎo)致界面顏色不統(tǒng)一司抱。

##6.2 在style.xml里定義主題:

@color/DeepPurple@color/DeepPurple900@color/Orange

在res目錄下,創(chuàng)建一個(gè)values-v21目錄黎烈,再創(chuàng)建一個(gè)style.xml:

true?colorPrimaryDark

然后在AndroidManifest.xml文件中修改application的theme屬性為上面定義的AppTheme习柠,即可實(shí)現(xiàn)沉浸式狀態(tài)欄。

7照棋、 其他規(guī)范

Activity繼承BaseFragmentActivity或SwipeBackActivity资溃,可以使用ButterKnife注解代替findViewById

方法

拆分臃腫方法,每個(gè)方法只作一件事

做同一個(gè)邏輯的方法烈炭,盡量靠近放到一塊溶锭,方便查看

不要使用 try catch 處理業(yè)務(wù)邏輯

使用JSON工具類,不要手動(dòng)解析和拼裝數(shù)據(jù)

控制語(yǔ)句

減少條件嵌套符隙,不要超過(guò)3層

if判斷使用“衛(wèi)語(yǔ)句”趴捅,減少層級(jí)if(obj != null) { doSomething(); }修改為:if(obj == null) { return; } doSomething();

if語(yǔ)句必須用{}包括起來(lái),即便是只有一句

處理“魔數(shù)”等看不懂的神秘?cái)?shù)字

代碼中不要出現(xiàn)數(shù)字,特別是一些標(biāo)識(shí)不同類型的數(shù)字霹疫。

所有意義數(shù)字全部抽取到Constant公共類中拱绑,避免散布在各位類中。

空行:空行將邏輯相關(guān)代碼段隔開更米,簡(jiǎn)潔清楚欺栗,提高可讀性

成員變量之間,根據(jù)業(yè)務(wù)形成分組加空行

方法之間加空行

用好TODO標(biāo)記

記錄想法征峦,記錄功能點(diǎn)迟几,開發(fā)過(guò)程中可以利用TODO記錄一下臨時(shí)想法或?yàn)榱瞬淮驍_思路留下待完善的說(shuō)明

刪除無(wú)用TODO,開發(fā)工具自動(dòng)生成的TODO栏笆,或則已經(jīng)完善的TODO类腮,一定要?jiǎng)h除。

##8蛉加、寫在最后

什么是架構(gòu) 軟件架構(gòu)絕對(duì)不只是框架的堆砌蚜枢,架構(gòu)是為了方便軟件可維護(hù)、可擴(kuò)展针饥、安全性厂抽、易理解。

##9丁眼、附錄A軟件設(shè)計(jì)六大原則:

單一職責(zé)原則 - Single Responsibility Principle

應(yīng)該有且僅有一個(gè)原因引起類的變更筷凤。(如果類需要變更,那么只可能僅由某一個(gè)原因引起)

里氏替換原則 - Liskov Substitution Principle

所有引用基類的地方,都能透明地替換成其子類對(duì)象藐守。只要父類能出現(xiàn)的地方挪丢,子類就可以出現(xiàn)。

依賴倒置原則 - Dependence Inversion Principle:

即“面向接口編程”: 高層模塊不應(yīng)該依賴低層模塊卢厂,兩者都應(yīng)該依賴其抽象乾蓬;——模塊間的依賴通過(guò)抽象發(fā)生。實(shí)現(xiàn)類之間不發(fā)生直接的依賴關(guān)系(eg. 類B被用作類A的方法中的參數(shù))慎恒,其依賴關(guān)系是通過(guò)接口或抽象類產(chǎn)生的任内; 抽象不應(yīng)該依賴細(xì)節(jié);——接口或抽象類不依賴于實(shí)現(xiàn)類巧号; 細(xì)節(jié)應(yīng)該依賴抽象族奢;——實(shí)現(xiàn)類依賴接口或抽象類。

接口隔離原則 - Interface Segregation Principle

客戶端只依賴于它所需要的接口丹鸿;它需要什么接口就提供什么接口,把不需要的接口剔除掉棚品。 ——類間的依賴關(guān)系應(yīng)建立在最小的接口上靠欢。 即,接口盡量細(xì)化铜跑,接口中的方法盡量少门怪。

迪米特法則 - Law of Demeter

又稱最少知識(shí)原則(Least Knowledge Principle),一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解锅纺。 一個(gè)類對(duì)自己依賴的類知道的越少越好掷空。也就是說(shuō),對(duì)于被依賴的類來(lái)說(shuō)囤锉,無(wú)論邏輯多么復(fù)雜坦弟,都盡量地的將邏輯封裝在類的內(nèi)部,對(duì)外除了提供的public方法官地,不對(duì)外泄漏任何信息酿傍。

開閉原則 -Open Closed Principle

對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉驱入。一個(gè)軟件實(shí)體應(yīng)該通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)變化赤炒,而不是通過(guò)修改已有代碼來(lái)實(shí)現(xiàn)變化。 一個(gè)軟件實(shí)體應(yīng)該通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)變化亏较,而不是通過(guò)修改已有的代碼來(lái)實(shí)現(xiàn)變化莺褒。——but雪情,并不意味著不做任何修改遵岩;底層模塊的擴(kuò)展,必然要有高層模塊進(jìn)行耦合旺罢。 “變化”可分為三種類型: 邏輯變化——不涉及其他模塊旷余,可修改原有類中的方法绢记; 子模塊變化——會(huì)對(duì)其他模塊產(chǎn)生影響,通過(guò)擴(kuò)展來(lái)完成變化正卧; 可見視圖變化——界面變化蠢熄,有時(shí)需要通過(guò)擴(kuò)展來(lái)完成變化。




原文:https://github.com/qsxiaogang/android-code-style

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炉旷,一起剝皮案震驚了整個(gè)濱河市签孔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窘行,老刑警劉巖饥追,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異罐盔,居然都是意外死亡但绕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門惶看,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捏顺,“玉大人,你說(shuō)我怎么就攤上這事纬黎》荆” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵本今,是天一觀的道長(zhǎng)拆座。 經(jīng)常有香客問(wèn)我,道長(zhǎng)冠息,這世上最難降的妖魔是什么挪凑? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮铐达,結(jié)果婚禮上岖赋,老公的妹妹穿的比我還像新娘。我一直安慰自己瓮孙,他們只是感情好唐断,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杭抠,像睡著了一般脸甘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上偏灿,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天丹诀,我揣著相機(jī)與錄音,去河邊找鬼。 笑死铆遭,一個(gè)胖子當(dāng)著我的面吹牛硝桩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枚荣,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼碗脊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了橄妆?” 一聲冷哼從身側(cè)響起衙伶,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎害碾,沒(méi)想到半個(gè)月后矢劲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慌随,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年芬沉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儒陨。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡花嘶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹦漠,到底是詐尸還是另有隱情,我是刑警寧澤车海,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布笛园,位于F島的核電站,受9級(jí)特大地震影響侍芝,放射性物質(zhì)發(fā)生泄漏研铆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一州叠、第九天 我趴在偏房一處隱蔽的房頂上張望棵红。 院中可真熱鬧,春花似錦咧栗、人聲如沸逆甜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)交煞。三九已至,卻和暖如春斟或,著一層夾襖步出監(jiān)牢的瞬間素征,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留御毅,地道東北人根欧。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像端蛆,于是被迫代替她去往敵國(guó)和親凤粗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,516評(píng)論 25 707
  • 文章來(lái)自https://github.com/Blankj/AndroidStandardDevelop#安卓開發(fā)...
    小莊bb閱讀 749評(píng)論 0 1
  • Android 編碼規(guī)范 1. 前言 這份文檔是 Google Java Code Style 的譯文欺税,并稍有添加...
    人失憶閱讀 443評(píng)論 0 3
  • 我們總是被父母被老師教導(dǎo)這不能那不能也就慢慢的懂得了一套行為標(biāo)準(zhǔn)侈沪,也就養(yǎng)成了大人的循規(guī)蹈矩。 現(xiàn)在任何一種行為準(zhǔn)則...
    夢(mèng)游世界閱讀 217評(píng)論 0 0
  • 身在人潮擁擠的城市应役,心在空無(wú)人煙的空城!2016年的最后一天了燥筷,身邊沒(méi)有親人箩祥,沒(méi)有友人,沒(méi)有愛人肆氓。只有手機(jī)和電腦里...
    我是萬(wàn)傲嬌閱讀 158評(píng)論 0 0