[编转]Android localsocket 的基础和使用实践: 02

在上一节里,谈到了基础和具体是实践实现:

这一节涉及调试和具体的实践测试:


例子源码在:

http://download.csdn.net/detail/goleftgoright/4183596


下载源码后,你需要在你的Linux开发pc上,例如ubuntu上修改一些东西:

01 你需要找到你的init.rc位置:

ref:

http://blog.csdn.net/yellow_hill/article/details/39548165


02 你需要在init.rc 加入你的socket服务

service <strong><span style="color:#33cc00;">htfskservice</span> </strong>/system/bin/htfsk
class main
socket htfsk stream 666 system system
oneshot
[注意]如果不加入class main,那么service 是不会在系统起来的时候自动启动的,之前我也以为既然加入了init.rc那么肯定是启动就起来了....崩溃

其实是因为没有加入class main选项.


03 做完这些后,你需要重新编译你的内核

make kernel



[注意]

如果没有加入,那么需要在目标板启动后,手动启动服务

root@TargetBoard:/ # start htfskservice

[注意] 启动的服务名,是和你在init.rc里面设定一致,这里是 htfskservice

启动之后,

root@TargetBoard:/ # ps

应该能看到:

u0_a79    3643  1505  513560 21280 ffffffff 40088a04 S com.cbox:remote
u0_a64    3656  1505  512444 18000 ffffffff 40088a04 S com.android.exchange
u0_a8     3683  1505  508696 16128 ffffffff 40088a04 S com.android.musicfx
root      3779  1     912    188   c08e4994 b6f86528 S /system/bin/htfsk
root      3797  1519  1244   236   00000000 b6f64570 R ps


04 将源码copy到你的项目编译PC上,

将工程MySocket拷贝到android源码的/packages/apps目录下编译就可以了

注,原作者的方法是重新编译整个应用,然后重新烧写,这未免太费事了


JAVA客户端

编译之后,其实我们只需要找到生成的apk,然后用adb push到目标板就可以了

编译后APK位置:

target Package: mSocket (out/target/product/xxx/xxx/obj/APPS/mSocket_intermediates/package.apk)
Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Install: out/target/product/xxx/xx/system/app/mSocket.apk

服务器端

当然,同时生成的native的执行代码在这里

target Strip: htfsk (out/target/product/xxx/xxx/obj/EXECUTABLES/htfsk_intermediates/htfsk)
Install: out/target/product/xxx/xxx/system/bin/htfsk

05 adb push 对应的服务器端和客户端到目标板

进到对应的目录,然后

adb push mSocket.apk /system/app 下

或者 /data/app  下


然后,adb push htfsk /system/bin   


然后,重启机器,大功告成.

[注意]
如果没有加入,那么需要在目标板启动后,手动启动服务
root@TargetBoard:/ # start htfskservice
[注意] 启动的服务名,是和你在init.rc里面设定一致,这里是 htfskservice
启动之后,
root@TargetBoard:/ # ps
应该能看到:
u0_a79    3643  1505  513560 21280 ffffffff 40088a04 S com.cbox:remote
u0_a64    3656  1505  512444 18000 ffffffff 40088a04 S com.android.exchange
u0_a8     3683  1505  508696 16128 ffffffff 40088a04 S com.android.musicfx
root      3779  1     912    188   c08e4994 b6f86528 S /system/bin/htfsk
root      3797  1519  1244   236   00000000 b6f64570 R ps


看到服务启动后,启动apk,输入你的名字,程序会通过localsocket反馈给你连接成功.


ref:

Android localsocket 的基础和使用实践: 01

http://blog.csdn.net/yellow_hill/article/details/39498015


Android应用与framework的socket通信实例

http://www.apkbus.com/android-70417-1-1.html



你可能感兴趣的:([编转]Android localsocket 的基础和使用实践: 02)