头图

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二进制版本
图片.png
下载完成后,解压放到需要的位置,运行bin/studio.sh
设置过程中

2.3设置

2.3.1会提示设置代理

将socks5代理信息填入
图片.png
这里我用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版的
图片.png
指定JDK的位置(2021的版本最低要求是11)
/usr/lib/jvm/java-11-openjdk-arm64
图片.png
用户openjdk会出现这个提示,为了可靠,我们可以通过下面的方式更改运行时JDK,我们可以下载oracle jdk11二进制包,解压到指定文件夹
图片.png
菜单Help | Find Action,输入Java Runtime 搜索,选择Boot Java Runtime for the IDE action.
图片.png
图片.png
选择我们解压的Oracle 11 JDK,点确认并重启android studio

2.3.3 设置项目编译使用的jdk

用户openjdk会出现这个提示,为了可靠,我们可以下载oracle jdk11二进制包,解压到指定文件夹,然后在idea里面进行配置
图片.png
在启动的idea里面,点file->settings打开界面如下
设置 JDK 版本:在 Android Studio 中打开您的项目,然后依次选择 File > Settings... > Build, Execution, Deployment > Build Tools > Gradle
图片.png
图片.png
添加刚解压的jdk
图片.png
保存

2.4 安装adb

打开终端

sudo apt-get install adb -y #安装工具,完毕后提示位置在/usr/lib/android-sdk/platform-tools/adb
adb version #确认安装情况

图片.png

2.4.1 USB连接调试

sudo adb devices

手机上要打开开发者模式,插上USB线后,要允许本机连接调试
图片.png

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管理进入)
图片.png
根据向导安装需要的版本,进入IDE后,也可以通过下面的界面配置。
图片.png
下载需要的依赖包(这里为了方便,我个人习惯是把所有的SDK都下了,放在个人主目录Android下面)
安装完毕后的效果如下
图片.png
图片.png

3.项目中的gradle设置

在上面所有的设置完成后,通过向导新建一个测试项目。建完之后,会发现Gradle Sync老是同步不成功的情况, 这主要还是我们现状决定。这里需要在项目的setting里面设定代理信息,通过代理拉取Gradle依赖包。
设置了gradle编译信息(这里不做详细的介绍了,这些和其他平台一样的)
图片.png
将工程中的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 修复排版错误


码上世界
79 声望290 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男