讲解:RK3399 Android应用开发

本文硬件平台以飞凌嵌入式OK3399-C开发板为基础进行讲解,其它RK3399产品,由于各个厂家设置不同会有所差异,请参考使用。本文档主要讲解如何建立Android应用开发环境

包括Android SDK和Android studio集成开发环境的下载及安装,以及如何使用飞凌RK3399开发板作为真机调试程序,非常适合Android初学者学习和参考。

Android应用程序开发

一、建立Android应用开发环境

1、下载并安装JDK(Java SE Development Kit)

由于Android应用代码都是用Java编写的,因此需要先在Windows上安装JDK,JDK可按以下方法下载:

访问网站http://www.oracle.com/technetwork/java/javase/downloads/index.html,在页面中点击JDK,推荐安装Java8。

 

 

 

点击“Accept License Agreement”根据windows版本选择exe安装程序。您也可以在用户资料资料工具目录找到飞凌提供文件。

下载完成后,双击安装程序,根据向导的提示完成安装即可。

安装完成后,需要将JDK命令添加到Path环境变量中,通过下面的方法将JDK命令所在的路径添加到Path环境变量中:

1)右击“我的电脑”- >属性,再选择左边导航的“高级系统设置”选项。

2)点击右下角的“环境变量”选项。

3)在“系统变量”中,找到Path环境变量,双击它,根据实际安装路径设置java环境变量,默认安装时追加以下内容“C:\Program Files\Java\jdk1.8.0_211\bin”

4)点击“确定”完成环境变量设置。

 

 

5) 检查安装是否成功

打开命令提示符工具,输入javac -version

 

正确显示Java版本即表示安装成功。

2、安装android studio

Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,国内可在http://www.android-studio.org/进行下载安装。建议下载3.1.2版本。

 

下载完成后按照提示进行安装即可。安装完成后将出现下图所示:

 

选择“Do not import settings”

 

选择“Cancel”取消。

 

点击“next”进行下一步

 

这里选择“custom”。

 

根据个人喜好选择UI主题

 

根据实际情况选择Android SDK的安装路径

 

选择模拟器的内存大小。

 

点击“Finish”。

 

等待安装完成,点击“Finish”。

3、创建helloworld工程

1. 选择“start a new android studio project”

 

2. 修改项目名称

 

3. 选择最低支持的SDK版本

 

4. 选择Empty Activity

 

点击“Next”

 

 

点击“Finish”

 

初次使用时会下载Gradle等工具,请耐心等待。

5. 安装android 9.0 SDK

点击“File”->“settings”搜索SDK打开下图所示界面:

 

勾选“API28”点击“OK”进行安装。

 

6. 修改build.gradle

将该文件中所有的29修改为28,点击“Try Again”

 

7. 编译

 

点击“build”->“Make Project”重新编译。

8. 运行

编译完成后,将OTG线链接到PC的USB接口中,点击菜单栏中的绿色三角形图标。

 

 

点击“OK”,稍等一会程序即在开发板上运行起来。

 

二、Apk platform签名

Android平台中SELinux将App划分为三种,包括没有platform签名和系统权限的untrusted_app,拥有platform签名没有系统权限的platform_app,和拥有platform签名和系统权限的system_app。本节,将介绍如何给apk签名获得system权限

1. 制作签名文件

将Android系统中build/target/product/security/platform.x509.pem以及build/target/product/security/platform.pk8拷贝到windows中。

打开命令行窗口执行:

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt

openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey

输入密码:android

keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

其中key-alias以及password您可以根据需求修改为其它内容。将签名文件debug.keystore文件保存到您的常用目录中。

注意:如果您的windows系统中没有openssl命令,请前往http://slproweb.com/products/Win32OpenSSL.html 下载安装,并设置环境变量。

2. 设置andorid studio

打开任意android studio工程,在AndroidManifest.xml中添加共享UID例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.forlinx.serialporttest"

    android:sharedUserId="android.uid.system" >

点击“File”->“project structure”:

 

 

添加debug版本和release版本的签名配置,并点击“build types”。

 

 

如图设置对应版本的签名配置。

点击android studio的运行按钮,启动app。在串口中输入ps -AZ

 

确认你的app是否已经成为system_app。

三、系统预装Apk的方法

1. 在android系统中新建目录:

mkdir packages/apps/serialporttest

将需要预装的apk(无需签名)拷贝到目录中以serialporttest.apk为例:

cp serialporttest.apk packages/apps/serialporttest

2. 在packages/apps/serialporttest新建Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := serialporttest

LOCAL_SRC_FILES := serialporttest.apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := .apk

LOCAL_BUILT_MODULE_STEM := package.apk

LOCAL_CERTIFICATE := platform

LOCAL_DEX_PREOPT := false

LOCAL_PRIVILEGED_MODULE := true

include $(BUILD_PREBUILT)

3. 同时修改device/rockchip/rk3399/device.mk添加

PRODUCT_PACKAGES += \

serialporttest

4. 重新编译镜像。

 

四、App获取root权限的方法

飞凌RK3399平台支持app调用“su”获取root权限,默认情况下该功能为未启用状态,启用方法如下:

1、打开开发者选项

 

打开设置,选择“关于平板电脑”选项,连续点击“版本号”多次,即可进入开发者选项。

2、打开root授权选项

 

3、重启系统

4、App获取root权限测试

在app中可以使用类似如下代码获取root权限:

Process p = Runtime.getRuntime().exec("su");

原创:RK3399  2020-12-10 11:42