當前位置:ag真人国际官网-ag旗舰厅官方网站 » 安卓系統 » rc4android

rc4android-ag真人国际官网

發布時間: 2024-11-15 15:27:25

⑴ android studio的gradle里的東西怎麼用

gradle是可鬧遲以用於android開發的新一代的 build system, 也是 android studio默認的build工具。
gradle腳本是基於一種jvm語言 -- groovy,再加上dsl(領域特定語言)組成的。
因為groovy是jvm語言,所以可以使用大部分的java語言庫。所謂dsl就是專門針對android開發的插件,比如標准gradle之外的一些新的方法(method)、閉包(closure)等。
由於gradle的語法足夠簡潔,而且可以使用液芹李大部分的java包,當之無愧地成為新一代 build system。
使用android studio新建一個工程後,默認會生成兩個build.gralde文件,一個位於工程根目錄,一個位於app目錄下。還有另外一個文件 --settings.gradle。
根目錄下的腳本文件是針對mole的全局配置,它的作用閾所包含的所有 mole 是通過settings.gradle來配置。
app文件夾就是一個mole,如果在當前工程中添加了一個新的mole -- lib,就需要在settings.gralde文件中包含這個新的mole。

gradle腳本的基本結構
用我現在的工程舉例來說,根目錄的build.gradle的內容如下所示:
// top-level build file where you can add configuration options common to all sub-projects/moles.

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

// note: do not place your application dependencies here; they belong
// in the indivial mole build.gradle files
}
}

allprojects {
repositories {
jcenter()

maven {
url 'http://mvnrepo.xxx.com/mvn/repository'
}
}
}

classpath 'com.android.tools.build:gradle:1.0.0-rc4'就是android特有的插件,maven倉庫位於通過方法jcenter() 獲取,這也是默認的maven倉庫。當然也可以首鬧添加額外的maven倉庫地址,例如以上文件中的
maven {
url 'http://mvnrepo.xxx.com/mvn/repository'
}

然後是 settings.gradle 文件:
include ':app'

app就是項目包含的一個mole,如果有多個mole,可以在為 include 方法添加多個參數。

最後是app/build.gradle
apply plugin: 'com.android.application'

android {
compilesdkversion 21
buildtoolsversion "21.1.1"

compileoptions {
sourcecompatibility javaversion.version_1_7
targetcompatibility javaversion.version_1_7
}

defaultconfig {
applicationid "your.application.id"
minsdkversion 14
targetsdkversion 21
versioncode 2
versionname "2.0.0"
}

signingconfigs {
release {
storefile file('release.keystore')
storepassword "yourstorepassword"
keyalias "yourkeyalias"
keypassword "yourkeypassword"
}
debug {
storefile file('debug.keystore')
}
}

buildtypes {
release {
minifyenabled true
proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'
signingconfig signingconfigs.release
}
debug {
signingconfig signingconfigs.debug
}
}

proctflavors {
inner {
applicationid "your.application.inner.id"
versionname "2.0.0"
}

market {

}
}
}

repositories {
flatdir {
dirs 'libs'
}
}

dependencies {

// 通用
compile name: 'volley', ext: 'aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile 'com.alibaba:fastjson:latest.integration'

// 項目相關(已刪除)
}

groovy 的基本語法
方法調用
apply plugin: 'com.android.application'
以上語句中的apply是一個方法,給它傳遞了一個參數plugin,plugin 的值是'com.android.application'。
如果有多個參數,則以逗號隔開,例如
compile name: 'volley', ext: 'aar'

閉包
groovy中花括弧包含的部分成為一個閉包(closure)。例如下面的代碼
compileoptions {
sourcecompatibility javaversion.version_1_7
targetcompatibility javaversion.version_1_7
}

compileoptions 是一個 method, 它的參數是一個閉包,這個閉包內依次執行了兩個方法 -- sourcecompatibility 和targetcompatibility, 參數都是javaversion.version17。
閉包也可以嵌套包含
repositories {
flatdir {
dirs 'libs'
}
}

常見使用方法
包依賴(aar)

使用aar時可以分為兩種情況
① aar位於本地目錄
首先在 android 的參數閉包中添加調用方法 repositories
repositories {
flatdir {
dirs 'libs'
}
}
然後在 dependencies 的參數閉包中添加
compile name: 'volley', ext: 'aar'
② aar位於遠程倉庫
這里以maven為例,當然也可以使用其他類型的倉庫,例如 ivy。
只需要在jar包引用方式後面添加一個@aar就可以了
compile 'com.alibaba:fastjson:latest.integration@aar'

包依賴(jar)
compile group: 'com.alibaba', mole: 'fastjson', version: 'latest.integration'

可以簡寫成
compile 'com.alibaba:fastjson:latest.integration'

latest.integration可以替換成具體的版本號,這里是獲取伺服器上的最新版本。
去掉重復依賴
compile 'com.alibaba.fastjson.latest.integration' {
exclude mole: 'annotations', group: 'com.google.android'
}

使用 java7
compileoptions {
sourcecompatibility javaversion.version_1_7
targetcompatibility javaversion.version_1_7
}

proctflavors
針對不同的app分發渠道,我們可以定義不同的 proct flavor。也可以定義內部版本和外部版本,內部版本中包含了一些調試代碼,這些代碼在發布時並不會被編譯進最後的app中。而且可以分別為內部版本和外部版本指定不同的applicationid,這樣在同一個設備上可以同時安裝兩個版本以方便調試。
命令行執行gradle腳本
在android工程根目錄下會自動生成一個shell腳本 - gradlew,執行之前記得加上x屬性 - chomod x gradlew
gradle腳本中包含了很多 task,可以通過task名來指定需要執行的task。
./gradlew build./gradlew assemble./gradlew assembleinnderdebug
總結
不得不說,gradle實在太好用了!雖然 gradle 可以與 ant 或 maven 配合使用,但是其簡潔和功能性遠遠超過其他兩個。我現在開發的項目普遍使用的是 maven,不知道什麼原因,使用gradle時經常會遇到一些無法獲取遠程依賴包的問題,最簡單的解決辦法就是把依賴包下載的本地。

⑵ 安卓http和https的區別

https()安全超文本傳輸協議它是一個安全通信通道,它基於http開發,用於在客戶計算機和伺服器之間交換信息。它使用安全套接字層(ssl)進行信息交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,用於對數據進行壓縮解壓操作,並返回網路上傳送回的結果。https實際上應用了netscape的安全全套接字層(ssl)作為http應用層的子層。(https使用埠443,而不是象http那樣使用埠80來和tcp/ip進行通信。)ssl使用40位關鍵字作為rc4流加密演算法,這對於商業信息的加密是合適的。https和ssl支持使用x.509數字認證,如果需要的話用戶可以確認發送者是誰。https和http的區別:https協議需要到ca申請證書,一般免費證書很少,需要交費。http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議http和https使用的是完全不同的連接方式用的埠也不一樣,前者是80,後者是443。http的連接很簡單,是無狀態的https協議是由ssl http協議構建的可進行加密傳輸、身份認證的網路協議要比http協議安全https解決的問題:1.信任主機的問題.採用https的server必須從ca申請一個用於證明伺服器用途類型的證書.改證書只有用於對應的server的時候,客戶度才信任次主機.所以目前所有的銀行系統網站,關鍵部分應用都是https的.客戶通過信任該證書,從而信任了該主機.其實這樣做效率很低,但是銀行更側重安全.這一點對我們沒有任何意義,我們的server,採用的證書不管自己issue還是從公眾的地方issue,客戶端都是自己人,所以我們也就肯定信任該server.2.通訊過程中的數據的泄密和被竄改1.一般意義上的https,就是server有一個證書.a)主要目的是保證server就是他聲稱的server.這個跟第一點一樣.b)服務端和客戶端之間的所有通訊,都是加密的.i.具體講,是客戶端產生一個對稱的密鑰,通過server的證書來交換密鑰.一般意義上的握手過程.ii.加下來所有的信息往來就都是加密的.第三方即使截獲,也沒有任何意義.因為他沒有密鑰.當然竄改也就沒有什麼意義了.2.少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書.a)這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼,還有一個ca認證過的身份.應為個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份.b)目前少數個人銀行的專業版是這種做法,具體證書可能是拿u盤作為一個備份的載體.https一定是繁瑣的.a)本來簡單的http協議,一個get一個response.由於https要還密鑰和確認加密演算法的需要.單握手就需要6/7個往返.i.任何應用中,過多的roundtrip肯定影響性能.b)接下來才是具體的http協議,每一次響應或者請求,都要求客戶端和服務端對會話的內容做加密/解密.i.盡管對稱加密/解密效率比較高,可是仍然要消耗過多的cpu,為此有專門的ssl晶元.如果cpu信能比較低的話,肯定會降低性能,從而不能serve的請求.ii.加密後數據量的影響.所以,才會出現那麼多的安全認證提示

熱點內容
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
經典矩陣c語言 發布:2024-11-19 08:56:23 瀏覽:268
网站地图