[Spice-devel] Try to port spicec into Android

Bitman Zhou bitman.zhou at sinobot.com.cn
Fri Mar 4 00:12:16 PST 2011


Hi, 

I am also interested in Android port. Maybe it's better to base the port
on spice-gtk which is written in C?

BR
Bitman Zhou

在 2011-03-04五的 15:38 +0800,Shuxiang Lim写道:
> Hi all,
>    I'm trying these days to port spicec into Android.But it's a rather
> TOUGH way to go because the structure of spicec and android are
> desperately inappropriate:the linux version of spicec is based on the
> X11,which is not available in Android,thus the UI of spicec should be
> rewritten from scratch...More troublesome is that the UI part and data
> part in current spicec is entangled in the hierarchical system in C++!
> So my plan is this: first split the spicec into two parts,data and
> UI,transform the data part into libspicec.so;then rewrite the UI part
> in JAVA. Besides, I should also tinker some problems caused by the
> Crippled NDK C++ support and the Lamed bionic c lib in android .
>    And now the first step is roughly done,hence the change of the
> spicec structure:
>    From               
> 
> |-->playback thread
>                                                             |-->cursor
> thread
> spicec:spicec process(application process)-->main thread->|-->record
> thread
>                                                             |-->inputs
> thread
> 
> |-->display thread
> To:
> ===========================>                          
>                          |-->libspicec.so:application thread-->main
> thread------>|
>                          |
> |
>                          |              |<--display thread<--|
> |
>                          |         |--->|<--cursor
> thread<---|<------------------|
>                          |         |    |<--inputs thread<---|
> spicec:spicec process--->|         |    |<--playback thread<-|
>                         |         |
>                          |         |
>                          |
> |<---------------------------------------------|
>                          |
> |
>                          |
> |   
>                          |-->spicec:platform
> thread------------------------------>|
> 
> The hierarchical relationship has been unleashed with one
> thread(record channel) deleted and two new threads (app and platform)
> created. The first as the "data thread",the other as the "work thread"
> which is driven by the signals from the first thread as well as its
> sub threads and requested to do the UI-related work:
> 
> platform thread:------------>blocked and waiting:-->job
> request-<--------------|
>                                           |           |
> | 
>                                           ^           |
> |        
>                                           |           |
> |
>                                           |<----------|-<-|
> |
>                                                       |   |
> | 
>         platform thread over<----------if(job==die)<--| send req.
> blocked and waiting
>                                               |           ^ |
> |
>                                               |           | |
> ^
>                                               |           | |
> _________|_________
>                                               |           | |
> | app/plbk/cusor thd
>              |<---job done----dojob()<--else--|           | |->go
> on->| __________________
>              |                                            |           
>              |------------------------------->feed back-->|
> 
> 
> So the next work is to expose the native JNI interface in platform
> thread to the UI written in Android SDK. I try to use the UI
> frame of AndroidVNCViewer in
> code.google.com/p/android-vnc-viewer/ ,then the work of platform
> thread will be replaced by UI but the msg communication to libspicec
> will be remained. That's the easiest way I can envisage except
> rewriting all parts in spicec from scratch. 
> It's tough too, for I have poor experiance in Java...
>    Anyway, is there any other guy working on this? Is my way
> feasible??Any Ideas or help is appreciated.
>    Best regards.
> 
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel




More information about the Spice-devel mailing list