3.2陆赋、Android Studio 創(chuàng)建Android項(xiàng)目

文章摘要
1局义、創(chuàng)建一個(gè)新的Android Studio項(xiàng)目
2授滓、查看生成的Gradle文件列表
3地技、查看頂級(jí)Gradle構(gòu)建文件
4真屯、查看應(yīng)用程序模塊中的構(gòu)建文件
5誊役、運(yùn)行標(biāo)準(zhǔn)的Gradle任務(wù)
6笼踩、使用Gradle窗口
7逗爹、運(yùn)行構(gòu)建掃描
8、Gradle Jcenter下載庫(kù)地址


英文文獻(xiàn)

一嚎于、創(chuàng)建一個(gè)新的Android Studio項(xiàng)目

下載并安裝Android Studio后掘而,啟動(dòng)應(yīng)用程序。
在歡迎屏幕上于购,單擊標(biāo)題為“啟動(dòng)新的Android Studio項(xiàng)目”的鏈接袍睡,如圖所示。

準(zhǔn)備好后肋僧,單擊下載并安裝Android Studio后斑胜,啟動(dòng)應(yīng)用程序。
在歡迎屏幕上嫌吠,單擊標(biāo)題為“啟動(dòng)新的Android Studio項(xiàng)目”的鏈接止潘,如圖所示。
準(zhǔn)備好后辫诅,單擊下一步凭戴。

歡迎使用Android Studio

在“創(chuàng)建Android項(xiàng)目”屏幕上,將應(yīng)用程序名稱設(shè)置為“HelloWorldGradle”炕矮,將公司域設(shè)置為您自己的(在附圖中使用了
gradle.org)么夫,并為項(xiàng)目位置選擇任何方便的目錄。
然后單擊下一步肤视。

創(chuàng)建新項(xiàng)目

在“目標(biāo)Android設(shè)備”屏幕上档痪,選擇手機(jī)和平板電腦,并從最低SDK下拉列表中選擇任何最近的API級(jí)別邢滑。
該圖顯示了API 19腐螟,這是常見(jiàn)的,但所選擇的值不會(huì)影響本指南的其余部分殊鞭。

指定Android裝置

在“添加Activity”屏幕上遭垛,選擇“ Empty Activity”,然后單擊“ 下一步 ”操灿。
接受“配置活動(dòng)”屏幕上的所有默認(rèn)值锯仪,然后單擊
完成* 。

配置Activity

二趾盐、查看生成的Gradle文件列表

默認(rèn)情況下庶喜,Android Studio將以“Android”模式啟動(dòng)“項(xiàng)目視圖”小腊,如圖所示:

Project View Android

Android項(xiàng)目是Gradle多項(xiàng)目構(gòu)建,具有頂級(jí)build.gradle文件和調(diào)用的子目錄app以及其自己的build.gradle文件久窟。
頂層構(gòu)建文件(Project: HelloWorldGradle)
如圖所示秩冈,app構(gòu)建文件已(Module: app)附加到該文件。

可能會(huì)有兩個(gè)文件gradle.properties斥扛。一個(gè)是項(xiàng)目加載入问。另一個(gè)文件可選,只有當(dāng)您的主目錄gradle.properties的.gradle子目錄中有全局文件時(shí)稀颁,才會(huì)存在芬失。

該文件settings.gradle由Gradle用于配置多項(xiàng)目構(gòu)建。它應(yīng)該由一行組成:

include ':app'

這告訴Gradle app子目錄也是一個(gè)Gradle項(xiàng)目匾灶。
如果在稍后棱烂,您將通過(guò)向?qū)蛟擁?xiàng)目添加一個(gè)Android庫(kù),將創(chuàng)建另一個(gè)項(xiàng)目子目錄并將其添加到此文件阶女。

最后一個(gè)文件被調(diào)用gradle-wrapper.properties颊糜,它配置了所謂的Gradle Wrapper。這樣就可以編譯Android項(xiàng)目秃踩,而無(wú)需首先安裝Gradle衬鱼。

該文件的內(nèi)容應(yīng)類似于:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-all.zip

前四行表示當(dāng)包裝器第一次運(yùn)行時(shí),它將下載Gradle分發(fā)并將其存儲(chǔ)在主目錄.gradle/wrapper/dists中的目錄中吞瞪。最后一行顯示的是distributionUrl馁启,它是Gradle將下載指定分布的位置驾孔。

具體版本號(hào)可能與此處顯示的不同(3.4.1)芍秆,URL可能指的是二進(jìn)制版本(-bin),而不是-all本示例中顯示
的complete()版本翠勉。

三妖啥、查看頂級(jí)Gradle構(gòu)建文件

項(xiàng)目build.gradle文件的內(nèi)容應(yīng)該類似于:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {                 
    repositories {
        jcenter()
    }
    dependencies {            
        classpath 'com.android.tools.build:gradle:2.4.0-alpha7'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {                 
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {    
    delete rootProject.buildDir
}
  • 1、下載插件塊:repositories
  • 2对碌、標(biāo)識(shí)Android插件:dependencies
  • 3荆虱、頂級(jí)和模塊項(xiàng)目的配置:allprojects
  • 4、特設(shè)任務(wù):task clean

Gradle定義了用于構(gòu)建的域特定語(yǔ)言(DSL)朽们,用于構(gòu)建文件中怀读。
該buildscript標(biāo)簽是該DSL的一部分。
它告訴Gradle骑脱,構(gòu)建需要一個(gè)可能不是基線Gradle分布的插件菜枷,并告訴Gradle在哪里找到它。
在這種情況下叁丧,所需的插件是使用坐標(biāo)語(yǔ)法“group:name:version”指定的啤誊,其中組是com.android.tools.build 名稱 gradle岳瞭,版本是 2.4.0-alpha7。

Gradle插件的版本號(hào)經(jīng)常更新蚊锹。
請(qǐng)使用最新的插件瞳筏,因?yàn)樗鼘锌捎玫腻e(cuò)誤修復(fù)和性能改進(jìn)。

當(dāng)Gradle首次構(gòu)建該項(xiàng)目時(shí)牡昆,該插件將被下載并緩存姚炕,因此此任務(wù)僅執(zhí)行一次。
該allprojects
標(biāo)簽保存適用于頂級(jí)項(xiàng)目及其包含的任何子項(xiàng)目的配置詳細(xì)信息丢烘。
在這種情況下钻心,該塊指定從jcenter公共Bintray Artifactory存儲(chǔ)庫(kù)
https://jcenter.bintray.com下載任何所需的依賴關(guān)系。

最后铅协,構(gòu)建文件包含一個(gè)調(diào)用的自定義(或臨時(shí))任務(wù)clean捷沸。
它使用內(nèi)置的任務(wù)類型Delete,并對(duì)其進(jìn)行配置狐史,該clean任務(wù)將刪除
buildDir的rootProject痒给。兩者都是項(xiàng)目屬性,其值默認(rèn)build為此應(yīng)用程序所在的項(xiàng)目中的目錄骏全。


四苍柏、查看應(yīng)用程序模塊中的構(gòu)建文件

打開(kāi)模塊中的build.gradle文件app。第一行是:

apply plugin: 'com.android.application'

這將“應(yīng)用”Android插件(buildscript在頂級(jí)構(gòu)建文件的部分中引用)到當(dāng)前項(xiàng)目姜贡。Gradle中的插件可以為Gradle項(xiàng)目添加自定義任務(wù)试吁,新配置,依賴關(guān)系和其他功能楼咳。在這種情況下熄捍,應(yīng)用Android插件會(huì)添加各種各樣的任務(wù),這些任務(wù)由android下一個(gè)塊組態(tài)母怜。

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "org.gradle.helloworldgradle"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner
            "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
        }
    }
}

這些屬性與Gradle構(gòu)建系統(tǒng)相比余耽,與Android相關(guān),對(duì)于這些屬性將不會(huì)在這里進(jìn)行輕描淡寫(xiě)苹熏。簡(jiǎn)而言之:

  • 該compileSdkVersion和buildToolsVersion與Android SDK的關(guān)聯(lián)碟贾,并且應(yīng)該永遠(yuǎn)是每個(gè)最新版本

  • 該defaultConfig部分保存由應(yīng)用程序的所有變體(構(gòu)建類型和變體的組合)共享的屬性。

  • 這applicationId是基于創(chuàng)建應(yīng)用程序時(shí)指定的域名和項(xiàng)目名稱轨域,并且在Google Play商店中必須是唯一的袱耽。

  • 該值minSdkVersion是您愿意為此應(yīng)用程序支持的最小Android API,而targetSdkVersion應(yīng)該是最新的Android版本干发。

  • 該值versionCode應(yīng)該是在將新版本的應(yīng)用程序上傳到Google Play商店之前遞增的整數(shù)朱巨。與此同時(shí),這個(gè)值applicationId告訴Google铐然,這是一個(gè)現(xiàn)有應(yīng)用程序的新版本蔬崩,而不是一個(gè)新的應(yīng)用程序恶座。

  • 該versionName值用于您自己的內(nèi)部版本跟蹤。

  • 該testInstrumentationRunner屬性配置為使用為Android應(yīng)用程序配置的JUnit 4測(cè)試運(yùn)行器沥阳。

在這一節(jié)下面是一個(gè)叫做“塊”的塊buildTypes跨琳。默認(rèn)情況下,Android應(yīng)用程序支持兩種構(gòu)建類型桐罕,debug和release脉让。此部分允許您配置你喜歡的一個(gè)。該debug部分在此處未顯示功炮,這意味著debug正在使用的所有默認(rèn)設(shè)置溅潜。

在android塊之后,有一個(gè)塊顯示用于此應(yīng)用程序的庫(kù)薪伏。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}

配置依賴關(guān)系是構(gòu)建Gradle應(yīng)用程序的基礎(chǔ)滚澜。在這種情況下,dependencies部分顯示的值compile嫁怀,testCompile和androidTestCompile配置设捐。

首先采取最簡(jiǎn)單的方法,testCompile依賴關(guān)系只包含最新穩(wěn)定的JUnit 4分發(fā)塘淑。JUnit類和測(cè)試注釋將在編譯時(shí)在src/test/java層次結(jié)構(gòu)中可用萝招。

該androidTestCompile依賴性是指咖啡的測(cè)試庫(kù),用于Android應(yīng)用程序的集成測(cè)試存捺。在這種情況下槐沼,請(qǐng)求沒(méi)有support-annotations通常包含的庫(kù)的Espresso ,因?yàn)橐呀?jīng)通過(guò)其他依賴關(guān)系包含了不同的版本捌治。在稍后的步驟中岗钩,您將看到如何找出包含該庫(kù)的版本以及為什么。

最后具滴,有三行添加依賴關(guān)系的compile配置:

  • 第一個(gè)凹嘲,fileTree(dir: 'libs', include: ['*.jar'])是fileTree將文件libs夾中的任何jar文件添加到編譯類路徑的依賴項(xiàng)

  • 第二個(gè),com.android.support:appcompat-v7:25.3.1將Android兼容性庫(kù)添加到項(xiàng)目中构韵。這允許您在任何Android應(yīng)用程序中使用與SDK版本7一樣的材料設(shè)計(jì)主題和其他功能

  • 最后一行,com.android.support.constraint:constraint-layout:1.0.2將新的約束布局添加到項(xiàng)目中趋艘。結(jié)合兼容性庫(kù)疲恢,您可以創(chuàng)建具有最新布局功能的應(yīng)用程序


五、運(yùn)行標(biāo)準(zhǔn)Gradle任務(wù)

Android Studio可以輕松地通過(guò)IDE構(gòu)建和部署應(yīng)用程序的調(diào)試版本瓷胧,但最終仍然涉及到Gradle显拳。要查看此內(nèi)容,請(qǐng)?jiān)贏ndroid Studio中打開(kāi)終端窗口(或打開(kāi)外部命令提示符并導(dǎo)航到應(yīng)用程序的根目錄)搓萧。從那里你可以運(yùn)行build任務(wù)杂数。

$ ./gradlew build

這將執(zhí)行許多任務(wù)宛畦,最終返回“建立成功”。要查看所產(chǎn)生的APK(Android軟件包揍移,Android應(yīng)用的可部署版本)次和,請(qǐng)查看目錄app/build/outputs/apk。在那里你會(huì)發(fā)現(xiàn)兩個(gè)文件:

  • app-debug.apk

  • app-release-unsigned.apk

調(diào)試APK是將部署到仿真器或連接設(shè)備的版本那伐。如果要部署APK踏施,您需要首先創(chuàng)建一個(gè)簽名配置,這超出了本指南的范圍罕邀,但這是資源中描述的一個(gè)簡(jiǎn)單的過(guò)程畅形。

從終端,您還可以找出support-annotations項(xiàng)目中正在使用的模塊的版本诉探。為此日熬,首先dependencies在app項(xiàng)目中運(yùn)行任務(wù),compile僅查詢配置的詳細(xì)信息肾胯。

$ ./gradlew :app:dependencies --configuration compile
:app:dependencies

------------------------------------------------------------
Project :app
------------------------------------------------------------

compile - Classpath for compiling the main sources.
+--- com.android.support:appcompat-v7:25.3.1
|    +--- com.android.support:support-annotations:25.3.1
|    +--- com.android.support:support-v4:25.3.1
|    |    +--- com.android.support:support-compat:25.3.1
|    |    |    \--- com.android.support:support-annotations:25.3.1
|    |    +--- com.android.support:support-media-compat:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-utils:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    +--- com.android.support:support-core-ui:25.3.1
|    |    |    +--- com.android.support:support-annotations:25.3.1
|    |    |    \--- com.android.support:support-compat:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1
|    |         +--- com.android.support:support-compat:25.3.1 (*)
|    |         +--- com.android.support:support-media-compat:25.3.1 (*)
|    |         +--- com.android.support:support-core-ui:25.3.1 (*)
|    |         \--- com.android.support:support-core-utils:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1
|    |    +--- com.android.support:support-annotations:25.3.1
|    |    \--- com.android.support:support-compat:25.3.1 (*)
|    \--- com.android.support:animated-vector-drawable:25.3.1
|         \--- com.android.support:support-vector-drawable:25.3.1 (*)
\--- com.android.support.constraint:constraint-layout:1.0.2
     \--- com.android.support.constraint:constraint-layout-solver:1.0.2

(*) - dependencies omitted (listed previously)

BUILD SUCCESSFUL

從輸出中可以看出碍遍,support-annotations模塊25.3.1是appcompat-v7庫(kù)的依賴。

查看所需版本的另一種方法是使用dependencyInsight任務(wù)阳液。運(yùn)行以下命令(全部在一行)怕敬。

$ ./gradlew :app:dependencyInsight --dependency support-annotations \
 --configuration compile
:app:dependencyInsight
com.android.support:support-annotations:25.3.1
+--- com.android.support:appcompat-v7:25.3.1
|    \--- compile
+--- com.android.support:support-compat:25.3.1
|    +--- com.android.support:support-v4:25.3.1
|    |    \--- com.android.support:appcompat-v7:25.3.1 (*)
|    +--- com.android.support:support-vector-drawable:25.3.1
|    |    +--- com.android.support:appcompat-v7:25.3.1 (*)
|    |    \--- com.android.support:animated-vector-drawable:25.3.1
|    |         \--- com.android.support:appcompat-v7:25.3.1 (*)
|    +--- com.android.support:support-media-compat:25.3.1
|    |    +--- com.android.support:support-v4:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1
|    |         \--- com.android.support:support-v4:25.3.1 (*)
|    +--- com.android.support:support-core-utils:25.3.1
|    |    +--- com.android.support:support-v4:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1 (*)
|    +--- com.android.support:support-core-ui:25.3.1
|    |    +--- com.android.support:support-v4:25.3.1 (*)
|    |    \--- com.android.support:support-fragment:25.3.1 (*)
|    \--- com.android.support:support-fragment:25.3.1 (*)
+--- com.android.support:support-core-ui:25.3.1 (*)
+--- com.android.support:support-core-utils:25.3.1 (*)
+--- com.android.support:support-media-compat:25.3.1 (*)
\--- com.android.support:support-vector-drawable:25.3.1 (*)

(*) - dependencies omitted (listed previously)

BUILD SUCCESSFUL

無(wú)論是dependency和dependencyInsight任何Gradle項(xiàng)目任務(wù)是可用的。他們可以幫助您跟蹤和解決庫(kù)版本沖突的任何問(wèn)題帘皿。


六东跪、使用Gradle窗口

Android Studio包含一個(gè)用于執(zhí)行Gradle任務(wù)的特殊窗口。Android項(xiàng)目提供超過(guò)80個(gè)不同的任務(wù)鹰溜,此窗口嘗試將其組織到類別中虽填。

打開(kāi)下面的Tasks文件夾:app,然后查看該android類別曹动。下圖顯示了一個(gè)例子斋日。

Gradle窗口簽名報(bào)告

由于signingReport任務(wù)不需要任何參數(shù),您可以直接雙擊它來(lái)執(zhí)行墓陈。結(jié)果如下圖所示恶守。

運(yùn)行和Gradle控制臺(tái)

該signingReport任務(wù)告訴您公鑰在哪里存儲(chǔ)(這里是debug.keystore用戶根目錄下的文件),其別名及其MD5和SHA1散列贡必。

請(qǐng)注意兔港,目前沒(méi)有釋放密鑰。查看install類別中Gradle窗口中列出的任務(wù)仔拟,如下圖所示衫樊。

Gradle窗口安裝

你會(huì)看到有一個(gè)installDebug任務(wù)和一個(gè)uninstallDebug任務(wù),一個(gè)uninstallRelease任務(wù),甚至一個(gè)uninstallAllTask科侈。然而载佳,由于缺席而顯而易見(jiàn),這是一項(xiàng)installRelease任務(wù)臀栈。該任務(wù)僅在您創(chuàng)建發(fā)布密鑰的簽名配置時(shí)可用蔫慧,Gradle可用于創(chuàng)建簽名的發(fā)行版APK。

如果您現(xiàn)在要啟動(dòng)多個(gè)仿真器或附加多個(gè)設(shè)備挂脑,則可以通過(guò)執(zhí)行installDebug任務(wù)將應(yīng)用程序部署到所有這些設(shè)備中藕漱。

$ ./gradlew installDebug

這不同于通過(guò)IDE運(yùn)行應(yīng)用程序。在這種情況下崭闲,您將選擇單個(gè)連接的設(shè)備或仿真器肋联,并且將安裝該應(yīng)用程序并啟動(dòng)它。installDebugGradle 的任務(wù)將會(huì)在所有連接的設(shè)備上部署應(yīng)用程序刁俭,盡管它不會(huì)啟動(dòng)任何應(yīng)用程序橄仍。結(jié)果將與下圖相似。

Android Emulator Pixel API 25
Android模擬器Nexus 9 API 23

您可以像往常一樣雙擊圖標(biāo)來(lái)啟動(dòng)應(yīng)用程序牍戚。您也可以使用uninstallAll任務(wù)刪除該應(yīng)用程序侮繁。

$ ./gradlew uninstallAll

這將從所有連接的設(shè)備中刪除該應(yīng)用。


七如孝、運(yùn)行構(gòu)建掃描

構(gòu)建掃描會(huì)生成關(guān)于構(gòu)建的所有依賴項(xiàng)宪哩,插件,測(cè)試輸出和性能的完整報(bào)告第晰。您可以通過(guò)--scan使用版本3.4及以上版本的任何Gradle命令附加標(biāo)志锁孟,或使用-Dscan早期版本的Gradle上的標(biāo)志來(lái)請(qǐng)求構(gòu)建掃描。

為了使用構(gòu)建掃描茁瘦,您需要添加構(gòu)建掃描插件并同意許可證品抽。有關(guān)詳細(xì)信息,請(qǐng)參閱...中的Build Scan入門指南甜熔,但總而言之圆恤,將以下部分添加到頂級(jí)build.gradle文件:

buildscript {
    repositories {
        jcenter()
        maven { url 'https://plugins.gradle.org/m2' }    
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.4.0-alpha7'
        classpath 'com.gradle:build-scan-plugin:1.7.1'   
    }
}

apply plugin: com.gradle.build-scan                      

buildScan {                                              
    licenseAgreementUrl = 'https://gradle.com/terms-of-service'
    licenseAgree = 'yes'
}

現(xiàn)在當(dāng)你運(yùn)行:

$ ./gradlew build --scan

您將收到一個(gè)鏈接到結(jié)果,托管在Gradle腔稀。結(jié)果頁(yè)面將類似于:

構(gòu)建掃描HelloWorldGradle

隨意探索所有細(xì)節(jié)盆昙。該報(bào)告包含許多功能的信息,包括依賴關(guān)系烧颖。如果您挖掘依賴關(guān)系部分并打開(kāi)_debugCompile配置弱左,appcompat-v7庫(kù)內(nèi)部是support-annotations前面描述的庫(kù)。

構(gòu)建掃描dep支持注釋

構(gòu)建掃描是分析您的構(gòu)建的有效方式炕淮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跳夭,隨后出現(xiàn)的幾起案子涂圆,更是在濱河造成了極大的恐慌们镜,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件润歉,死亡現(xiàn)場(chǎng)離奇詭異模狭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)踩衩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門嚼鹉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人驱富,你說(shuō)我怎么就攤上這事锚赤。” “怎么了褐鸥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵线脚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叫榕,道長(zhǎng)浑侥,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任晰绎,我火速辦了婚禮寓落,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荞下。我一直安慰自己伶选,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布锄弱。 她就那樣靜靜地躺著考蕾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪会宪。 梳的紋絲不亂的頭發(fā)上肖卧,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音掸鹅,去河邊找鬼塞帐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛巍沙,可吹牛的內(nèi)容都是我干的葵姥。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼句携,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榔幸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤削咆,失蹤者是張志新(化名)和其女友劉穎牍疏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拨齐,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鳞陨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞻惋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厦滤。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖歼狼,靈堂內(nèi)的尸體忽然破棺而出掏导,到底是詐尸還是另有隱情,我是刑警寧澤蹂匹,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布碘菜,位于F島的核電站,受9級(jí)特大地震影響限寞,放射性物質(zhì)發(fā)生泄漏忍啸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一履植、第九天 我趴在偏房一處隱蔽的房頂上張望计雌。 院中可真熱鬧,春花似錦玫霎、人聲如沸凿滤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翁脆。三九已至,卻和暖如春鼻种,著一層夾襖步出監(jiān)牢的瞬間反番,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工叉钥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罢缸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓投队,卻偏偏與公主長(zhǎng)得像枫疆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子敷鸦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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