本文档主要介绍
Android解决方案一些功能的使用、调试方法,通过实例介绍各模块的如何使用,调试及注意事项。
1、Android 开发环境类
1.1 Android NDK 的使用
1.1.1 版本选择
问题描述:如何选择和当前源码环境一致的Android版本?
解决办法:请参考表1-1的Android版本和NDK对应关系,截止到Android5.1版本。
NDK | Android | API | NDK EABI |
n/a | 1.0 | 1 | arm-eabi-4.2.1 |
n/a | 1.1 | 2 | arm-eabi-4.2.1 |
1.5_rl | 1.5 | 3 | arm-eabi-4.2.1 |
1.6_rl | 1.6 | 4 | arm-eabi-4.2.1 |
r3 | 2.0 | 5 | arm-eabi-4.4.0 |
2.0.1 | 6 |
2.1 | 7 |
r4 | 2.2 | 8 | arm-eabi-4.4.0 |
r4b |
r5 | 2.3 2.3.3 | 9 10 | arm-1 inux- androideabi-4.4.3 |
r5b |
r5c |
1.1.2 通过 NDK 生成 EABI 工具链
问题描述:第三方开发者需要通过C/C++代码生成动态链接库,但是不知道使用什么编译器才能编译出可以在当前Android版本上使用的动态链接库?
解决办法:通过NDK生成EABI工具链的操作步骤如下:
步骤1 根据1.1.1 版本选择章节信息,下载对应于当前Android版本的NDK包。
步骤2 解压NDK包:tar jxvf android-ndk-XX-linux-x86.tar.bz2,其中,XX为NDK版本号。
步骤3 生成可用于编译的EABI编译工具链工具。
build/tools/make-standalone-toolchain.sh --toolchain=AAA --
platform=android-BBB --install-dir=/tmp/my-android-toolchain
-AAA:EABI编译工具链版本,请参考1.1.1 版本选择章节的对照表获取正确值。
-BBB:android版本API号,请参考1.1.1 版本选择章节的对照表获取正确值。
----结束
2、网络类
2.1 WiFi
2.1.1 如何配置 WiFi 编译?
问题描述:编译时是否要配置
WiFi模块的编译选项,要如何配置?
问题分析:Android平台支持多款WiFi模块,编译前需要先配置好采用的是哪种WiFi模块,否则WiFi驱动不会编译进镜像,WiFi无法开启。
解决办法:
编译前修改BoardConfig.mk文件,以Hi379XXVXXX
芯片为例,如:device/
HiSilicon/Hi379XXVXXX/BoardConfig.mk文件,根据采用的WiFi模块,打开WiFi驱动的编译开关。
如:
-打开
RTL8188EUS的编译开关:BOARD_
WLAN_DEVICE_
RTL8188EUS = y
-打开RTL8188ETV的编译开关:BOARD_WLAN_DEVICE_RTL8188ETV = y
也可以同时打开几款WiFi模块的编译开关。
2.1.2 如何配置 WiFi 适用的国家或地域?
问题描述:在中国之外的市场,为何WiFi总会出现连接不上AP的情况?
问题分析:不同的国家或地域,WiFi使用的信道不一样,比如中国使用信道1~13,美国使用1~11。WiFi默认设置成中国,如果产品所发布的市场是中国之外的国家或区域,那么在编译前需要根据产品所发布的市场设置好WiFi的国家或区域,否则可能会出现无法连接上AP的问题。
解决办法:
编译前要根据产品所发布的市场设置好WiFi的国家或区域。设置方法为修改hardware/libhardware_legacy/wifi/wifi.c文件,在WiFi的驱动参数中修改国家或区域参数。
如:
-RTL8188EUS/RTL8188ETV设置成美国
#define driver_module_rtl8188eus 2, \
{ \
{"cfg80211","/system/lib/modules/cfg80211.ko","","cfg80211 "}, \
{"rtl8188eu","/system/lib/modules/rtl8188eu.ko","ifname=wlan0
if2name=p2p0 rtw_channel_plan=0x22","rtl8188eu "} \
}
国家或地域所对应的值可以询问WiFi厂家。
2.1.3 WiFi 待机唤醒后不能使用?
问题描述:WiFi开启状态,待机唤醒后,WiFi连接不上AP,也扫描不到AP,甚至单板无法唤醒。
问题分析:WiFi待机有cutpower模式和deepsleep模式,cutpower模式是在待机时将WiFi模块断电,而deepsleep模式是需要提供电源的。不同的WiFi支持的待机模式不一样,有些WiFi是默认采用deepsleep模式。Demo板待机时,USB接口是断电的,因此deepsleep待机模式的WiFi在唤醒后不能正常使用。
解决办法:为了统一方案,请在待机前将WiFi关闭,唤醒后将WiFi重新开启,版本中已采用这种方案。
更多详细内容请下载附件查看