在Android APP中运行Native程序

这里指的的Native程序,就是Linux上用C标准库写下来的各种程序

需要在Android上打包运行lighttpd+php-cgi,这就涉及到使用交叉编译出这些程序并运行。

关于交叉编译,主要注意的要点就是使用哪个编译器,一般都是使用arm-none-linux-gnueabi-gcc

Android上没有使用libc,而是使用自家的Bionic,这也就意味着没法调用动态标准库函数,所以交叉编译需要使用静态编译的选项进行编译,不要挂上任何的外部库,才能保证C/C++程序可以独立在Android下运行,并且不会触发Android的PIE机制。 Continue reading “在Android APP中运行Native程序”

获取Android Phone的各种IP

因为要知道AP模式下的Android Phone的IP啊,好让其他连接上的手机可以直接访问这手机上的服务,不过好像AP模式下默认都是192.168.43.1这个IP

所以要想办法拿到各种IP,比如说外网IP(这个是移动网络动态分配的,在这个项目里,完全没看到什么卯月)、还有内网IP(供其它局域网内的手机访问其服务)。

官方提供的接口,好像都是获取自身在GPRS/3G/4G/WIFI下的IP,好像也可以获取AP模式下的IP?

咱这里通过使用shell里的程序来获取我们需要的信息,比如说ifconfig(权限不够,用系统级程序的UID+签名可以破,发布不出去,需要root的话,就没什么卯月了,不过ifconfig里面可以提供的信息真是好丰富啊,还能用它配置网络。)、ip addr(这个没什么权限要求,就是你了!基于AOSP的原生系统来做,不知道会不会有厂商改动这一块的东西,啧啧)这里只提取了局域网IP、局域网广播IP、和移动网络的IP,其他的信息需求,可以自己调用ip addr看下。 Continue reading “获取Android Phone的各种IP”