我是靠谱客的博主 喜悦冰棍,最近开发中收集的这篇文章主要介绍nanopi k2 android tv,基于Nano Pi NEO4开发板的AS项目开发,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于Nano Pi NEO4开发板的AS项目开发

基于Nano Pi NEO4开发板的AS项目开发

Andro Studio集成Nano Pi硬件资源库

打开AS,新建工程之后,打开appàsrcàmain其目录结构应该是如下样式:

─ main

│   ├── AndroidManifest.xml

│   ├── java

│   │   └── com

│   │       └── friendlyarm

│   │           ├── FriendlyThings

│   │           │   ├── BoardType.java

│   │           │   ├── FileCtlEnum.java

│   │           │   ├── GPIOEnum.java

│   │           │   ├── HardwareControler.java

│   │           │   ├── SPIEnum.java

│   │           │   ├── SPI.java

│   │           │   └── WatchDogEnum.java

│   ├── jniLibs

│   │   ├── arm64-v8a

│   │   │   └── libfriendlyarm-things.so

│   │   └── armeabi

│   │       └── libfriendlyarm-things.so

└── res

这个是Nano Pi的资源目录,去官网下载源码之后,直接复制到appàsrcàmainàjava里面,不要做任何修改。

在java的同级目录下新建jniLibs文件夹,将Nano Pi的库引入

系统签名

因为要开发的软件最终要访问Nano Pi的硬件资源,所以必须给软件打上系统签名。Nano Pi官方推荐的方式是在android 8.1的源码上进行编译,然后获取系统签名。因此这里提供两种方式,第一种是官方方式,第二种是个人方式。个人比较推崇第二种方式,因为android 8.1源码太大,下载慢。

官方方式

第一步:修改AndroidManifest.xml

在应用程序的AndroidManifest.xml中的manifest节点中加入以下属性:

android:sharedUserId="android.uid.system"

第二步:修改Android.mk

编写一个Android.mk文件(最简单的方法就是拷贝示例中的Android.mk文件),修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := 你的项目名

LOCAL_CERTIFICATE := platform

LOCAL_MODULE_TAGS := optional

LOCAL_CFLAGS := -lfriendlyarm-hardware

include $(BUILD_PACKAGE)

最后一步:在 Android源代码中编译你的app

先在 Android源代码根目录调用 setenv.sh 导出环境变量,然后进入你的 app 目录,使用mm命令编译;

例子:编译 GPIO_LED_Demo,以RK3399平台为例:

cd rk3399-android-8.1

. setenv.sh

cd vendor/friendlyelec/apps/GPIO_LED_Demo

mm

更多请查看官方链接:http://wiki.friendlyarm.com/wiki/index.php/FriendlyThings_for_RK3399/zh

个人方式

第一步:打包apk

在进行这一步之前,首先应在AndroidManifest.xml中的manifest节点中加入以下属性:

android:sharedUserId="android.uid.system"

因为我们在调试软件的时候不能先加入这一节点,否则软件将会运行报错,无法安装也无法调试,所以我们先要把非访问硬件功能实现,在真机调试完毕之后,在加入这一节点。然后使用AS打包软件。具体如何打包请自行百度。

第二步:下载android8.1 签名工具

在官方给出的资料里面,我们很轻易就能找到相对应的签名工具。具体链接在:

FriendlyELEC-RK3399àandroid-platform-key-filesàandroid8里面。

下载上图三个文件,然后将其复制到Ubuntu任意目录下。

第三步:在Ubuntu下安装jdk开发环境

首先查看是否已经安装jdk,ctrl+Alt+T打开终端,输入命令,如果出现如下所示,即说明已经安装过jdk开发环境了,所以跳过以下步骤,否则请按照以下步骤安装jdk。

[email protected]:~$ java -version

java version "13.0.2" 2020-01-14

Java(TM) SE Runtime Environment (build 13.0.2+8)

Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

如果没有出现上述的内容,表明没有安装jdk开发环境,所以请跟随我接下来操作。

首先进入以下网址下载jdk:

https://www.oracle.com/java/technologies/javase-jdk13-downloads.html

下载下图所框选的jdk。

第二步:解压jdk包

将下载的jdk包复制到Ubuntu下,在终端中解压文件:

[email protected]:~$ tar -zxvf jdk-13.0.2_linux-x64_bin.tar.gz

第三步:将解压后的文件移到/usr/lib目录下cd /usr/lib

sudo mkdir –p jdk/jdk-13.0.2

sudo mv ~/jdk-13.0.2 /usr/lib/jdk

ll jdk/jdk-13.0.2

执行完之后,出现下图所示的内容,即表明移动成功。

第四步:配置java环境变量

这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境。

使用命令打开/etc/profile文件,进行编辑:

sudo vim /etc/profile

在末尾添加以下几行文字:

#set java env

export JAVA_HOME=/usr/lib/jdk/jdk-13.0.2

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

执行命令使修改立即生效

source /etc/profile

查看java开发环境是否安装完毕,终端中输入如下指令:

java -version

第四步:复制libconscrypt_openjdk_jni.so文件

libconscrypt_openjdk_jni.so文件存在于android8.1源码的以下路径中:

prebuilts/sdk/tools/linux/lib64/

取得libconscrypt_openjdk_jni.so文件之后,将其复制到签名工具所在的根目录下。

第五步:签名

在签名工具的根目录下,将之前打包的apk文件复制到此,然后打开终端,输入以下命令:

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk app-release-signed.apk

注意:app-release.apk,签名前的安装包

app-release-signed.apk,签名后的安装包

如果你待签名的apk文件名为app-release.apk,可以直接在终端运行start.sh文件进行签名

./start.sh

如果apk名称不为app-release的话,打开start.sh文件进行修改

运行完该条指令之后,签名工具的根目录会生成签名之后的安装包

第六步:通过ADB安装apk到开发板上

首先查看是否已经安装了adb,终端输入以下命令:adb version

如果出现下图所示的情况,表示adb没有安装。

如果没有出现上图所示情况,那么请略过下面的步骤:

安装adbsudo apt-get install android-tools-adb

adb version下载apk到开发板上

选择签名之后的apk文件,然后在终端输入指令下载

adb install-multiple -r -t app-release-signed.apk

出现下图所示情况表明安装完毕

我们提供了脚本,脚本内容即为下载指令终端中输入

./install.sh    //如果签名之后的文件不一致,请修改在运行

如果出现如下图所示的情况,请先到开发板中卸载之前的旧版本软件,因为之前调试时所用的签名与现在签名不一致。

检验结果

自行检测硬件资源访问是否有效。

基于Nano Pi NEO4开发板的AS项目开发相关教程

最后

以上就是喜悦冰棍为你收集整理的nanopi k2 android tv,基于Nano Pi NEO4开发板的AS项目开发的全部内容,希望文章能够帮你解决nanopi k2 android tv,基于Nano Pi NEO4开发板的AS项目开发所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(140)

评论列表共有 0 条评论

立即
投稿
返回
顶部