Difference between revisions of "Template:FriendlyThings Installation Guide"
From FriendlyELEC WiKi
(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
Contents
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