概述
基于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项目开发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复