Android FAQ

From FriendlyELEC WiKi
Revision as of 07:18, 28 July 2015 by Tzs (Talk | contribs) (如何将Android程序下载到开发板上运行?)

Jump to: navigation, search

1 有没有Android相关的开发文档?

有,由友善工程师编写,介绍如何搭建 Android 开发环境以及编写Android应用软件,并在Tiny6410和Mini6410上调试。 文档的下载地址:

Android2.3 (for Windows7):http://www.arm9home.net/read.php?tid-10057.html
Android2.2 (for Fedora9): http://www.arm9home.net/read.php?tid-9403.html
Tiny4412 Android硬件开发指南: http://www.arm9home.net/read.php?tid-82748.html

2 怎么编译单个模块?

在android源代码根目录执行

. setenv

再到你要编译的模块的目录执行以下命令即可。

mmm ./

注意,但并不是所有模块都可以单独编译的,一般app和lib通常都可以单独编译,但一些公共的库就不行。

3 如何将Android程序下载到开发板上运行?

1) 通过miniUSB线,在eclipse运行程序时,会自动下载并运行你的程序
2) 通过adb命令来安装
3) 拷贝到SD卡,在开发板上点击apk文件进行安装
4) 通过ftpget下载apk文件到开发板,通过命令 pm install xxx.apk 进行安装, (xxx.apk改成你的apk文件名)
注:愤怒的小鸟在安装前要将SD卡拨出。

4 如何在Linux下安装ADB驱动?

参考文档: http://www.arm9home.net/read.php?tid-9403.html

5 如何在Windows7下安装ADB驱动?

参考文档:http://www.arm9home.net/read.php?tid-10057.html

6 在Fedora和Win7下安装USB ADB驱动均不成功怎么办?

可参考《Android ADB over TCP/IP 及在Mini6410开发板上运行Helloworld 》,详见http://my.chinaunix.net/space.php?uid=24545924&do=blog&id=84556。

7 Android下无法执行我编译写的C程序?

程序一定要静态编译,即在arm-linux-gcc/arm-linux-g++上加上-static参数。

8 如何在ANDROID上开发串口通讯的程序?

使用libfriendlyarm-hardware.so类库中的接口可以实现,具体可参考FriendlyARM编写的《Android 2.3 开发指南》,该文档下载地址:http://www.arm9home.net/read.php?tid-10057.html

当然也可以自已编写JNI类库来实现,可参考《Mini6410之Qt和Qtopia编程开发指南》。

9 iTest和libfriendlyarm-hardware.so是否开放源代码?

不开放,可以自已用JNI写一个自已的lib, 至于驱动的接口,可参考文档《Mini6410之Qt和Qtopia编程开发指南》,文档下载地址:http://www.arm9home.net/read.php?tid-9360.html

10 如何在ANDROID中访问摄像头?

友善已经按标准的Android接口编写了Camera HAL层的程序,所以你用标准的Android API就可以访问摄像头了,
如果你使用的是 210 开发板,在 android 4.0.3 的源代码目录,这里有我们写的一个开源Demo:
android-4.0.3_r1/device/friendly-arm/mini210/USBCamera
如果你使用的是 4412 开发板,并使用 Android 5 系统,可以从github上获得我们提供的一个Demo:
https://github.com/friendlyarm/android_CameraDemo

11 非大陆的移动运营商,如何进行3G拨号?在哪里可以修改拨号参数?

通过修改 /etc/ppp/peers 下面的pppd脚本来实现

12 我想让Android支持鼠标和键盘,如何做呢?

Android是为指尖触摸设备而设计的,对鼠标支持并不好,就算你插上鼠标并能成功识别,Android也只是把你的鼠标识别成5向滚轮键而以,界面上并不会出现鼠标光标。 不过,开源社区有一些项目意在将ANDOIRD移植到PC上网本上,他们自行在ANDROID中增加了鼠标的支持,例如 android-x86 项目,你可以参考他们的实现,自行定制 Android 源代码。

13 Android2.3的LED驱动源代码在什么位置?

位于 drivers/char/mini6410_leds.c

14 如何在命令行进行3G拨号?

华为E1750在Mini6410和Tiny6410通过命令行拨号的方法是,在终端上执行以下命令:

# 3g-ppp/system/etc/3g-modem/12d1.1446.12d1.1001
# call-ppp wcdma

执行以上命令后,就会在后台进行拨号了,然后进入目录/var/run/,查看是否产出文件 ppp0-ok,如果有,则表示已拨号成功,ppp0-ok文件内会存储IP地址和DNS。

要断开网终,kill pppd进程ID 即可。

其它型号的3G上网卡可以在图形界面上拨号成功后,通过ps查看进程列表来获得3g-ppp的命令行,再结合上面所说的步骤进行。

15 Android下如何开机运行程序?

则最简单的方法是定制Android源代码,用C编写一个service程序,然后将该service添加到 init.rc 中即可开机自动运行了。

16 6410 android 版本为什么不用 init 而用linuxrc ?

使用 linuxrc 主要是为了检查是否需要校准触摸屏,如果需要(通常发生在第一次开机时)就调出校准画面,最终还是会调用 Android中的init的。

17 210 android 内核中scripts/FriendlyArm.cpio的作用是什么?

FriendlyARM.cpio 是用于启动时的控制,比如在mount根文件系统前检测一下一线触摸,对于电容屏用户,可以禁用它,如果要用ramdisk,也必须禁止用它。

18 /linuxrc 文件的用处是什么?

linuxrc主要是用于一线屏时的校准,如果是电容屏,可以去掉,换成android的init 即可。

19 Android4可以看到已经加载U盘,但无法浏览文件?

出现这种情况可能是你安装的ES文件浏览器已经更新,包名和窗口名攺变了, 导致UDISK应用无法调用你所安装的 ES文件浏览器,实际上U盘已经加载,你用你的ES文件浏览器,或其它FILE BROWER软件打开 /udisk 目录即可。

20 210下无法使用TVP5150摄像头

要注意以下事项: 1) 开机只插AV-IN摄像头 2) 内核要用 zImage_tvp5150 3) J11的跳针要跳到TVP5150的那端