0.基礎環境
類別:筆記本
型號:中國長城 NF14C
硬件平台:飛騰處理器(ArmV8 指令集)
系統:銀河麒麟操作系統 V10(SP1)
關鍵詞:
信創,麒麟系統,linux,安卓,android,移動app,飛騰,arm
1.背景描述
前面,我們將java,go,web的環境都搭建好了,但我們日常研發過程中也會涉及到移動app的研發等。Linux X86下的版本,android studio是有官方的包的,而飛騰處理器的ARM架構,在安卓官網並沒有直接可用的安裝包,包括adb command line tools。
本文通過各類嘗試,最終成功完成在國產自主系統和處理器完成安卓APP的研發環境,並將過程記錄如下,希望能夠給到有相同需要的讀者一些啓示和幫助。
2.android studio
2.1 前提條件
需要先準備好java,請參見第十篇https://segmentfault.com/a/1190000041968411文章內容這裝配置好java環境。
2.2 下載
android studio 沒有提供arm版本,但考慮到android studio基於idea研發,Java技術系統,所以在官網中下載linux二進制版本
下載完成後,解壓放到需要的位置,運行bin/studio.sh
設置過程中
2.3設置
2.3.1會提示設置代理
將socks5代理信息填入
這裏我用socks5服務,如果你自己沒有做代理,也可以用下面的代理解決此問題。
1、東軟信息學院
mirrors.neusoft.edu.cn 端口:80
2、北京化工大學
ubuntu.buct.edu.cn/ubuntu.buct.cn 端口:80
3、中國科學院開源協會
mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) 端口:80
4、上海GDG鏡像服務器
sdk.gdgshanghai.com 端口:8000
5、電子科技大學
mirrors.dormforce.net 端口:80
其中,強烈推薦電子科技大學的鏡像源!
2.3.2 設置studiojdk
設置jdk,不要用自帶的jre,用我們安裝高的arm版的
指定JDK的位置(2021的版本最低要求是11)
/usr/lib/jvm/java-11-openjdk-arm64
用户openjdk會出現這個提示,為了可靠,我們可以通過下面的方式更改運行時JDK,我們可以下載oracle jdk11二進制包,解壓到指定文件夾
菜單Help | Find Action,輸入Java Runtime 搜索,選擇Boot Java Runtime for the IDE action.
選擇我們解壓的Oracle 11 JDK,點確認並重啓android studio
2.3.3 設置項目編譯使用的jdk
用户openjdk會出現這個提示,為了可靠,我們可以下載oracle jdk11二進制包,解壓到指定文件夾,然後在idea裏面進行配置
在啓動的idea裏面,點file->settings打開界面如下
設置 JDK 版本:在 Android Studio 中打開您的項目,然後依次選擇 File > Settings... > Build, Execution, Deployment > Build Tools > Gradle
添加剛解壓的jdk
保存
2.4 安裝adb
打開終端
sudo apt-get install adb -y #安裝工具,完畢後提示位置在/usr/lib/android-sdk/platform-tools/adb
adb version #確認安裝情況
2.4.1 USB連接調試
sudo adb devices
手機上要打開開發者模式,插上USB線後,要允許本機連接調試
2.4.2 adb wifi無線調試
無線調試前提條件: 同一wifi,andriod 11+,SDK>30+(adb versions),同時手機要打開無線調試
adb pair不可用,需要用adb connect 在v10 sp1上。
注:由於本人網絡不是太好,所以簡單測試一下,沒有搞成功。後面搞通了,再補充
2.5 sdk設置
啓動android studio,會出現 SDK配置信息(或通過tool工具菜單,找到SDK管理進入)
根據嚮導安裝需要的版本,進入IDE後,也可以通過下面的界面配置。
下載需要的依賴包(這裏為了方便,我個人習慣是把所有的SDK都下了,放在個人主目錄Android下面)
安裝完畢後的效果如下
3.項目中的gradle設置
在上面所有的設置完成後,通過嚮導新建一個測試項目。建完之後,會發現Gradle Sync老是同步不成功的情況, 這主要還是我們現狀決定。這裏需要在項目的setting裏面設定代理信息,通過代理拉取Gradle依賴包。
設置了gradle編譯信息(這裏不做詳細的介紹了,這些和其他平台一樣的)
將工程中的build.gradle,setting.gradle中的倉庫地址全部換成阿里雲的。
buildscript {
repositories {
mavenLocal()
maven{ url 'https://maven.aliyun.com/repository/google'}
maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{ url 'https://maven.aliyun.com/repository/public'}
maven{ url 'https://maven.aliyun.com/repository/jcenter'}
maven{ url 'https://maven.aliyun.com/repository/center'}
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.0'
classpath "com.android.databinding:dataBinder:1.0-rc0"
}
}
allprojects {
repositories {
mavenLocal()
maven{ url 'https://maven.aliyun.com/repository/google'}
maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{ url 'https://maven.aliyun.com/repository/public'}
maven{ url 'https://maven.aliyun.com/repository/jcenter'}
maven{ url 'https://maven.aliyun.com/repository/center'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
至發稿時,待後續打通的有以下兩點(通過有線已可以調試)
1.沒有wifi adb
2.沒有裝成功模擬器,似乎原因在kvm,倉庫中也沒有找到對應的kvm arm版本。
3.adb可以識別的,但idea的連動基本上是斷的。只能通過idea將程序編譯好,再通過adb手動安裝至手機。這裏可能需要官方或者有熱情的人員將linux x86的版本重新針對arm編譯一次(可能才能達到一體化連動)
麒麟系統專欄:
https://segmentfault.com/blog/kylinos
文章發表在SegmentFault
聯繫郵箱:1179611323@qq.com
羣:662512340
發行日志:
20220617 首發
20231023 修復排版錯誤