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的問題:
目錄
第二步 再使用android manager查看sdk版本.
android SDK vs JDK vs 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。