ERROR: Received close_notify during handshake

Android Studio GradleSync一直失敗,提示:ERROR: Received close_notify during handshake

https://stackoverflow.com/questions/59408006/error-received-close-notify-during-handshake

說是ssl連接的問題,關閉防火牆再試一次,果然就好了。本地java版本1.8

其他關於android的問題:

目錄

MAC查看androidsdk方法

第一步 先找到android sdk的存放路徑

第二步 再使用android manager查看sdk版本.

ADB工具進行android日誌打印

APKHelper工具

Windows安裝Androidstudio

android SDK vs JDK vs android  NDK

1.Android SDK

2.JDK

3.Android NDK



MAC查看androidsdk方法

第一步 先找到android sdk的存放路徑

方式一:通過unity 找到現在的androidsdk的存放路徑如圖所示:

 

方式二:通過androidstudio ,如圖所示:

第二步 再使用android manager查看sdk版本.

方式一:通過命令行打開

通過第1步找到的sdk的路徑,cd到那個路徑下的tools目錄下

然後輸入 ./android sdk

會彈出android manager的界面-android manager界面介紹:https://www.cnblogs.com/kangjianwei101/p/5621238.html

方式二:通過android studio 打開 略

 

ADB工具進行android日誌打印

ADB(Android Debug Bridge)是Android SDK中的一個工具,如果你安裝了androidsdk,就可以在platform-tools這個路徑下找到這個工具:

cd到這個路徑下,用gitbash打開輸入

1 查看當前連接設備:

./adb devices 

可以看到連接上的設備 (windows下把adb的路徑存入PATH環境變量,就不用cd了,直接adb就可以了)

 

2 查看日誌信息:

./adb logcat > 33333.log 

grep "XXX" 33333.log > 4444.log 

有關Unity的一些信息。

(如果要調試某個Unity做的遊戲的信息,先輸入

tail -f 33333.log

然後在手機上打開這個遊戲

就能看到控制檯打印了一些日誌,大部分都是關於這個遊戲的,然後就能猜到大概是XXX進程號了,然後再輸入

grep "XXX" 33333.log > 4444.log 

最後就在4444.log下面找內容就可以了

)

 

APKHelper工具

確定一下這個apk的版本號是多少,因爲是通過這個版本去sdk後臺獲取匹配的規則的,可以通過apkhelper查看apk 的信息。

 

Windows安裝Androidstudio

下載android studio https://developer.android.com/studio

安裝好了以後馬上啓動

提示沒有安裝android sdk(後面會介紹android sdk):

點擊cancle,進入初次登陸配置界面,最後選擇 默認推薦配置就行了,會給你下載android sdk。

新建項目以及構建以及測試

IDE下載安裝好了,用一下。

選擇新建一個項目,選擇empty activity,填到最後會開始下載gradle,gradle sync之類的。

gradle sync成功了以後,進行build apk,

build成功以後,就可以點擊 Run--》Run “app”進行測試了(如果沒有配置模擬機,點擊Tools--》AVD Manager(andriod virtual device)進行配置) :

自己遍歷一下多點點探索一下。

 

android SDK vs JDK vs android  NDK

1.Android SDK

(Android Software Development Kit):

android 軟件開發工具包用來開發android的。

相當於安卓機器的操作系統,類似與windows操作系統,沒有android sdk開發包的支持,就無法進行android應用開發,提供給你一個開發android應用的環境。

與java的關係:爲了能夠使 Java 開發者快速轉入 android應用的開發,所以仿照 Java API 重新進行了實現,因而大多數標準庫中的資源都可以按照原來java開發的方式使用。

如何查看sdk版本號:上面使用mac查看android sdk的版本號

 

2.JDK

java軟件開發工具包。

這個包中提供了java語言的類庫,也就是你要用java語言,那麼電腦上必須裝jdk。

unity中關於android的設置關於jdk和sdk的存放路徑:

因爲unity導出打包成android應用,就需要用到android sdk,安卓應用又需要用到java語言,java語言又需要底層的java類庫,這些類庫就被封裝在JDK中。

查看版本號:java -v

3.Android NDK

摘自 https://blog.csdn.net/huang_yx005/article/details/78780450

(Native Development Kit):NDK允許用戶使用類似C / C++之類的原生代碼語執行部分程序。Android程序運行在Dalvik虛擬機中。Android的SDK基於Java實現,所以基於Android SDK進行開發的第三方應用一般都使用Java語言,但這並不等同於“第三方應用只能使用Java”,也就是說我們還可以採用C/C++語言。

NDK是一系列工具的集合。它提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so(通過NDK編譯C/C++生成的)和java應用一起打包成apk(AndroidPackage的縮寫,Android安裝包)。這些工具對開發者的幫助是巨大的。

NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創建出so。它可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

NDK提供了一份穩定、功能有限的API頭文件聲明,Google明確聲明該API是穩定的,在後續所有版本中都穩定支持當前發佈的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標準庫(libc)、標準數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。

 

  • ps1:爲什麼使用NDK:

(1)  代碼的保護。由於apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。

(2)  可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++代碼編寫的。

(3)  提高程序的執行效率。將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。

(4)便於移植。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用。

 

  • ps2:JNI

Java Native Interface的縮寫,中文爲JAVA本地調用。從Java1.1開始,Java Native Interface(JNI)標準成爲java平臺的一部分。JNI是java語言提供的Java和C/C++相互溝通的機制,Java可以通過JNI調用本地的C/C++代碼,本地的C/C++的代碼也可以調用java代碼。JNI 是本地編程接口,Java和C/C++互相通過的接口。Java通過C/C++使用本地的代碼的一個關鍵性原因在於C/C++代碼的高效性

 

  • ps3:

androidsdk編譯生成 java文件,java應用

ndk編譯C/C++源碼生成.so文件

ndk還可以講so文件和java文件一起打包成apk。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章