Difference between revisions of "Template:FriendlyThings Installation Guide"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
Line 1: Line 1:
 +
==快速使用入门==
 +
===(第1步) 集成libfriendlyarm-things.so到你的app===
 +
克隆以下仓库到本地:
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/friendlythings-sdk
 +
</syntaxhighlight>
 +
接着复制 libs 目录下的所有内容到你的工程目录下,然后在你的Android项目的src目录下创建com/friendlyarm目录,将java/FriendlyThings目录拷贝进去即可,最后的目录的结构看上去是这样的 (注:AndroidStudio的项目可能会稍有不同,但大致如此):<br />
 +
<syntaxhighlight lang="bash">
 +
YourProject/
 +
├── AndroidManifest.xml
 +
├── libs
 +
│   ├── arm64-v8a
 +
│   │   └── libfriendlyarm-things.so
 +
│   └── armeabi
 +
│      └── libfriendlyarm-things.so
 +
├── src
 +
│   └── com
 +
│      └── friendlyarm
 +
│          ├── FriendlyThings
 +
│          │   ├── BoardType.java
 +
│          │   ├── FileCtlEnum.java
 +
│          │   ├── GPIOEnum.java
 +
│          │   ├── HardwareControler.java
 +
│          │   ├── SPIEnum.java
 +
│          │   ├── SPI.java
 +
│          │   └── WatchDogEnum.java
 +
</syntaxhighlight>
 +
使用以下方法导入它们,主要的接口都集中在 HardwareControler.java文件中:
 +
<syntaxhighlight lang="java">
 +
import com.friendlyarm.FriendlyThings.HardwareControler;
 +
import com.friendlyarm.FriendlyThings.SPIEnum;
 +
import com.friendlyarm.FriendlyThings.GPIOEnum;
 +
import com.friendlyarm.FriendlyThings.FileCtlEnum;
 +
import com.friendlyarm.FriendlyThings.BoardType;
 +
</syntaxhighlight>
 +
===(第2步) 让你的app拥有system权限===
 +
你的app需要拥有system权限,才能访问硬件资源; <br />
 +
请参考下面的方法修改你 app 的 AndroidManifest.xml 和 Android.mk这两个文件; <br />
 +
并且最好将你的app放到Android源码中去编译,这一步不是必需的,但是建议这么做,如果你的app在外部编译,你需要对apk进行签名才能让你的app拥有system权限(新手不太建议,过程比较繁琐)。<br />
 +
====修改AndroidManifest.xml====
 +
在应用程序的AndroidManifest.xml中的manifest节点中加入以下属性:
 +
<syntaxhighlight lang="bash">
 +
android:sharedUserId="android.uid.system"
 +
</syntaxhighlight>
 +
====修改Android.mk====
 +
编写一个Android.mk文件(最简单的方法就是拷贝示例中的Android.mk文件),修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行:
 +
<syntaxhighlight lang="java">
 +
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)
 +
</syntaxhighlight>
 +
===(最后1步) 在 Android源代码中编译你的app===
 +
先在 Android源代码根目录调用 setenv.sh 导出环境变量,然后进入你的 app 目录,使用mm命令编译; <br />
 +
例子:编译 GPIO_LED_Demo,以RK3399平台为例: <br />
 +
<syntaxhighlight lang="bash">
 +
cd rk3399-android-8.1
 +
. setenv.sh
 +
cd vendor/friendlyelec/apps/GPIO_LED_Demo
 +
mm
 +
</syntaxhighlight>

Revision as of 06:29, 16 November 2018

1 快速使用入门

1.1 (第1步) 集成libfriendlyarm-things.so到你的app

克隆以下仓库到本地:

git clone https://github.com/friendlyarm/friendlythings-sdk

接着复制 libs 目录下的所有内容到你的工程目录下,然后在你的Android项目的src目录下创建com/friendlyarm目录,将java/FriendlyThings目录拷贝进去即可,最后的目录的结构看上去是这样的 (注:AndroidStudio的项目可能会稍有不同,但大致如此):

YourProject/
├── AndroidManifest.xml
├── libs
│   ├── arm64-v8a
│   │   └── libfriendlyarm-things.so
│   └── armeabi
│       └── libfriendlyarm-things.so
├── src
│   └── com
│       └── friendlyarm
│           ├── FriendlyThings
│           │   ├── BoardType.java
│           │   ├── FileCtlEnum.java
│           │   ├── GPIOEnum.java
│           │   ├── HardwareControler.java
│           │   ├── SPIEnum.java
│           │   ├── SPI.java
│           │   └── WatchDogEnum.java

使用以下方法导入它们,主要的接口都集中在 HardwareControler.java文件中:

import com.friendlyarm.FriendlyThings.HardwareControler;
import com.friendlyarm.FriendlyThings.SPIEnum;
import com.friendlyarm.FriendlyThings.GPIOEnum;
import com.friendlyarm.FriendlyThings.FileCtlEnum;
import com.friendlyarm.FriendlyThings.BoardType;

1.2 (第2步) 让你的app拥有system权限

你的app需要拥有system权限,才能访问硬件资源;
请参考下面的方法修改你 app 的 AndroidManifest.xml 和 Android.mk这两个文件;
并且最好将你的app放到Android源码中去编译,这一步不是必需的,但是建议这么做,如果你的app在外部编译,你需要对apk进行签名才能让你的app拥有system权限(新手不太建议,过程比较繁琐)。

1.2.1 修改AndroidManifest.xml

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

android:sharedUserId="android.uid.system"

1.2.2 修改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)

1.3 (最后1步) 在 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