PK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是DalvikVMexecutes的全稱,即AndroidDalvik執(zhí)行程序,并非JavaME的字節(jié)碼而是Dalvik字節(jié)碼。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設、成都做網(wǎng)站與策劃設計,和龍網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:和龍等地區(qū)。和龍做網(wǎng)站價格咨詢:18980820575
由于APK文件本身就是壓縮包,如果用戶的電腦上裝了WinRAR(85%的裝機量),用IE下載APK文件,擴展名就會被自動改為“.zip”。
如果你的下載服務器為Nginx服務器,那么,在Nginx安裝目錄下的conf/mime.types文件的對應位置,加上以下一行語句,指定APK文件的MIME類型為application/vnd.android.package-archive即可:
注意:上面的配置只是在nginx那層好了,但如果你是用nginx+tomcat的方式,在ie下還是會變成zip的還需要在tomcat里面配置conf/web.xml里指定了apk類型
一個TCP服務端可以同時連接很多個客戶端,例如世界各地的用戶使用自己電腦上的瀏覽器訪問淘寶網(wǎng)。因為Go語言中創(chuàng)建多個goroutine實現(xiàn)并發(fā)非常方便和高效,所以我們可以每建立一次鏈接就創(chuàng)建一個goroutine去處理。
1、簡單易學。
Go語言的作者本身就很懂C語言,所以同樣Go語言也會有C語言的基因,所以對于程序員來說,Go語言天生就會讓人很熟悉,容易上手。
2、并發(fā)性好。
Go語言天生支持并發(fā),可以充分利用多核,輕松地使用并發(fā)。 這是Go語言最大的特點。
描述
Go的語法接近C語言,但對于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進程(CSP)為基礎,采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運算的特征,比如通道傳輸。
在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語言級支持。
1. 保留但大幅度簡化指針
Go語言保留著C中值和指針的區(qū)別,但是對于指針繁瑣用法進行了大量的簡化,引入引用的概念。所以在Go語言中,你幾乎不用擔心會因為直接操作內(nèi)寸而引起各式各樣的錯誤。
2. 多參數(shù)返回
還記得在C里面為了回饋多個參數(shù),不得不開辟幾段指針傳到目標函數(shù)中讓其操作么?在Go里面這是完全不必要的。而且多參數(shù)的支持讓Go無需使用繁瑣的exceptions體系,一個函數(shù)可以返回期待的返回值加上error,調(diào)用函數(shù)后立刻處理錯誤信息,清晰明了。
3. Array,slice,map等內(nèi)置基本數(shù)據(jù)結(jié)構(gòu)
如果你習慣了Python中簡潔的list和dict操作,在Go語言中,你不會感到孤單。一切都是那么熟悉,而且更加高效。如果你是C++程序員,你會發(fā)現(xiàn)你又找到了STL的vector 和 map這對朋友。
4. Interface
Go語言最讓人贊嘆不易的特性,就是interface的設計。任何數(shù)據(jù)結(jié)構(gòu),只要實現(xiàn)了interface所定義的函數(shù),自動就implement了這個interface,沒有像Java那樣冗長的class申明,提供了靈活太多的設計度和OO抽象度,讓你的代碼也非常干凈。千萬不要以為你習慣了Java那種一條一條加implements的方式,感覺還行,等接口的設計越來越復雜的時候,無數(shù)Bug正在后面等著你。
同時,正因為如此,Go語言的interface可以用來表示任何generic的東西,比如一個空的interface,可以是string可以是int,可以是任何數(shù)據(jù)類型,因為這些數(shù)據(jù)類型都不需要實現(xiàn)任何函數(shù),自然就滿足空interface的定義了。加上Go語言的type assertion,可以提供一般動態(tài)語言才有的duck typing特性, 而仍然能在compile中捕捉明顯的錯誤。
5. OO
Go語言本質(zhì)上不是面向?qū)ο笳Z言,它還是過程化的。但是,在Go語言中, 你可以很輕易的做大部分你在別的OO語言中能做的事,用更簡單清晰的邏輯。是的,在這里,不需要class,仍然可以繼承,仍然可以多態(tài),但是速度卻快得多。因為本質(zhì)上,OO在Go語言中,就是普通的struct操作。
6. Goroutine
這個幾乎算是Go語言的招牌特性之一了,我也不想多提。如果你完全不了解Goroutine,那么你只需要知道,這玩意是超級輕量級的類似線程的東西,但通過它,你不需要復雜的線程操作鎖操作,不需要care調(diào)度,就能玩轉(zhuǎn)基本的并行程序。在Go語言里,觸發(fā)一個routine和erlang spawn一樣簡單?;旧弦莆誈o語言,以Goroutine和channel為核心的內(nèi)存模型是必須要懂的。不過請放心,真的非常簡單。
7. 更多現(xiàn)代的特性
和C比較,Go語言完全就是一門現(xiàn)代化語言,原生支持的Unicode, garbage collection, Closures(是的,和functional programming language類似), function是first class object,等等等等。
看到這里,你可能會發(fā)現(xiàn),我用了很多輕易,簡單,快速之類的形容詞來形容Go語言的特點。我想說的是,一點都不夸張,連Go語言的入門學習到提高,都比別的語言門檻低太多太多。在大部分人都有C的背景的時代,對于Go語言,從入門到能夠上手做項目,最多不過半個月。Go語言給人的感覺就是太直接了,什么都直接,讀源代碼直接,寫自己的代碼也直接。
學完 Go 的基礎知識已經(jīng)有一段時間了,那么接下來應該學什么呢?有幾個方向可以考慮,比如說 Web 開發(fā),網(wǎng)絡編程等。
在下一階段的學習之前,寫了一個開源項目 Go 開發(fā)的一款分布式唯一 ID 生成系統(tǒng),如果你對這個項目感興趣的話,可以在 GitHub 上拿到源碼。
在寫項目的過程中,發(fā)現(xiàn)一個問題。實現(xiàn)功能是沒問題的,但不知道自己寫的代碼是不是符合 Go 的風格,是不是夠優(yōu)雅。所以我覺得相比于繼續(xù)學習應用開發(fā),不如向底層前進,打好基礎,打好寫 Go 代碼的基礎。
所以,我決定開始讀 Go 標準庫源碼,Go 一共有 150+ 標準庫,想要全部讀完的話不是不可能,但絕對是一項大工程,希望自己能堅持下去。
為什么從 Go 標準庫的源碼開始讀呢?因為最近也看了一些 Go 底層原理的書,說實話,像 goroutine 調(diào)度,gc 垃圾回收這些內(nèi)容,根本就看不懂。這要是一上來就讀這部分代碼,恐怕直接就放棄 Go 語言學習了。
而標準庫就不一樣了,有一部分代碼根本不涉及底層原理,實現(xiàn)也相對簡單,同時又能對 Go 的理念加深理解,作為入門再好不過了。然后再由簡入深,循序漸進,就像打怪升級一樣,一步一步征服 Go。
說了這么多,那到底應該怎么讀呢?我想到了一些方法:
可以通過上面的一種或幾種方法相結(jié)合,然后再不斷閱讀不斷總結(jié),最終找到一個完全適合自己的方法。
下面是我總結(jié)的一些標準庫及功能介紹:
這里僅僅列舉了一部分標準庫,更全面的標準庫列表大家可以直接看官網(wǎng)。
那么問題來了,這么多庫從何下手呢?
我這里做一個簡單的分類,由于水平有限,只能做一些簡單的梳理,然后大家可以結(jié)合自己的實際情況來做選擇。
有些庫涉及到非常專業(yè)的知識,投入產(chǎn)出比可能會比較低。比如 archive 、 compress 以及 crypto ,涉及到壓縮算法以及加密算法的知識。
有些庫屬于工具類,比如 bufio 、 bytes 、 strings 、 path 、 strconv 等,這些庫不涉及領域知識,閱讀起來比較容易。
有些庫屬于與操作系統(tǒng)打交道的,比如 os , net 、 sync 等,學習這些庫需要對操作系統(tǒng)有明確的認識。
net 下的很多子包與網(wǎng)絡協(xié)議相關(guān),比如 net/http ,涉及 http 報文的解析,需要對網(wǎng)絡協(xié)議比較了解。
如果想要深入了解語言的底層原理,則需要閱讀 runtime 庫。
要想快速入門,并且了解語言的設計理念,建議閱讀 io 以及 fmt 庫,閱讀后會對接口的設計理解更深。
我已經(jīng)看了一些源碼,雖然過程痛苦,但確實非常有用。前期可能理解起來比較困難,用的時間長一些,但形成固定套路之后,會越來越熟悉,用的時間也會更少,理解也會更深刻。
開源項目:
網(wǎng)頁標題:go語言archive Go語言圣經(jīng)
標題網(wǎng)址:http://sd-ha.com/article4/hheeie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、網(wǎng)站建設、品牌網(wǎng)站建設、定制開發(fā)、小程序開發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)