Ok,I will try to submit a review after I make everything working.I just don't want to dup the code
On Mar 31, 2009, at 5:53 PM, Dianne Hackborn <hack...@android.com> wrote: > Sorry I have never actually looked at that code; I have only dealt > with the C++ code. > > On Tue, Mar 31, 2009 at 5:11 PM, Yi Sun <beyo...@gmail.com> wrote: > Dianne, > BTW--- should we make the binder.c in the service_manager directory > into a library? So that people who write native service by C can > reuse the code. What do you think? > Yi > > > On Tue, Mar 31, 2009 at 4:41 PM, Yi Sun <beyo...@gmail.com> wrote: > Dianne, > Thank you for the hint. I will try this out to see if I can make it > work or not. > Yi > > > On Tue, Mar 31, 2009 at 4:24 PM, Dianne Hackborn > <hack...@android.com> wrote: > Okay so just do what I suggested, add your own shared library for > accessing it. You are going to need to do that anyway, since you > will at least need to have the binder interface somewhere for > someone to link to, or if you weren't going to use the binder surely > you would have something besides a raw socket as the API for > applications. > > > On Tue, Mar 31, 2009 at 4:22 PM, Yi Sun <beyo...@gmail.com> wrote: > I'm trying to relay some information (events) between Android > application and a native application. The idea is to have a > background native process running as a service that can be accessed > by Android applications through binder interface. The native process > is written by C and it will be a lot works to convert it to other > lang. It will be easier to add a Binder interface into it and make > it work as a android service. I guess we could use socket to do this > as well. But I hope we use an unified interface like Binder. > Yi > > > On Tue, Mar 31, 2009 at 4:14 PM, Dianne Hackborn > <hack...@android.com> wrote: > Could you please explain more what you are trying to do? If you are > trying to add a service with a public API for applications to use, > one approach you can take is to make a shared library that apps > request with <uses-library> which has APIs to retrieving and calling > the service. That shared library can use non-SDK classes like the > ServiceManager, since it is intended to be bundled with the device. > > But I really don't know enough about what you are trying to > accomplish to help more. > > > On Tue, Mar 31, 2009 at 3:54 PM, Yi Sun <beyo...@gmail.com> wrote: > So it seems that I only have following choices: > 1. write my own JNI to access my service. > 2. hack the ApplicationContext to add my service into into > getSystemService. I also need to build my own service class into > android.app package. In my client, I will call getSystemService > collect my service handle and do binder operations. > > > Yi > > > On Tue, Mar 31, 2009 at 2:31 PM, Dianne Hackborn > <hack...@android.com> wrote: > It is not in the SDK, and as a rule applications should not be > directly accessing system services. You'll note that there are tons > of system services in the standard android platform, and they all > have appropriate SDK APIs for calling them (and the > Context.getSystemService() API to allow apps to access them). > > > On Tue, Mar 31, 2009 at 1:47 PM, Yi Sun <beyo...@gmail.com> wrote: > But, the ServiceManager is not an exported java API at all. > Thanks > Yi > > > On Tue, Mar 31, 2009 at 12:48 AM, Dianne Hackborn > <hack...@android.com> wrote: > You are mixing two different things. You are creating a low-level > core system service, and then trying to connect to it as if it is a > high-level application service. If you are using service manager to > publish it, you need to use service manager (in Java ServiceManager) > to access it. > > > On Mon, Mar 30, 2009 at 10:45 PM, Yi Sun <beyo...@gmail.com> wrote: > Hi Dianne, > Thanks for the reply. Actually here is what I want to do: > On the service side (C code), reusing binder.c in the > service_manager directory. So my code will call > 1. binder_open, > 2. bio stuff to build an io block for adding service, > 3.binder_call to add service to service_manager. > 4. binder_loop to wait for requests. (Just do a quick prototype > here, so no multi-threads) > > On the client side (java), send request to the service I built and > receive replies. > Now, if I run /system/bin/service list, I can see my service like > this: > # /system/bin/service list > Found 43 services: > 0 Binder.Test.IBindertest: [] > > But, on the java side, I can not really get the binder object for > this service. The bindService call failed with following error > messages: > W/ActivityManager( 581): Unable to start service Intent > { action=Binder.Test.IBindertest }: not found > > Yi > > On Mon, Mar 30, 2009 at 10:01 PM, Dianne Hackborn > <hack...@android.com> wrote: > If you are writing a low-level system service, the high-level > Service API (onBind() etc) is irrelevant. The aidl stuff is part of > the primitive Binder IPC stuff; Service is a much higher-level > facility built on top of it. > > > On Mon, Mar 30, 2009 at 7:21 PM, beyounn <beyo...@gmail.com> wrote: > > Ok, let me try out the AIDL part, it seems simpler. But I do have a > question about it and hope you could give more hits. I took a look on > the AIDL, it seems that on the service(server) side, we have to > implement onBind and other methods. For my case, does it mean that I > don't need to care about the service side works and only need to > implement something like RemoteServiceBinding.java in the example code > for my self? > Thanks > Yi > > On Mar 30, 6:36 pm, Dave Sparks <davidspa...@android.com> wrote: > > You can write AIDL to generate your Java binding, or you can write > > your own native binding and put a JNI layer on top of that. If you > > don't plan on calling your service from native code, AIDL is much > > easier. > > > > On Mar 30, 6:08 pm, beyounn <beyo...@gmail.com> wrote: > > > > > Hello, > > > I'm writing a service by C. My code calls binder to add a service > > > called "myservice" into servicemanager. And I can add "myservice" > > > without any problem. Also, when I run "/system/bin/service > list", it > > > shows the service added by me. The question is -- What is the > correct > > > way to access this service from my application that is written by > > > java? > > > Thanks > > > Yi > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > > > > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > > > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > > > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > > > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > > > > > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have > time to provide private support. All such questions should be > posted on public forums, where I and others can see and answer them. > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "android-framework" group. To post to this group, send email to android-framework@googlegroups.com To unsubscribe from this group, send email to android-framework+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-framework?hl=en -~----------~----~----~----~------~----~------~--~---