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 修复排版错误
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。