From 46d02d8dd30975f0e41d616987be597cb9331691 Mon Sep 17 00:00:00 2001 From: ioacademy-jikim Date: Thu, 14 Jun 2018 15:59:12 +0900 Subject: [PATCH] 7 --- 03_day.pptx | Bin 159364 -> 166647 bytes 03_day/binder_3/Android.bp | 8 +++++ 03_day/binder_3/my_client.cpp | 22 ++++++++++++ 03_day/binder_3/my_server.cpp | 19 +++++++++- 03_day/binder_4/.my_server.cpp.swp | Bin 0 -> 12288 bytes 03_day/binder_4/Android.bp | 16 +++++++++ 03_day/binder_4/ILedService.cpp | 31 +++++++++++++++++ 03_day/binder_4/ILedService.h | 26 ++++++++++++++ 03_day/binder_4/ProcessState.cpp | 54 +++++++++++++++++++++++++++++ 03_day/binder_4/my_client.cpp | 23 ++++++++++++ 03_day/binder_4/my_server.cpp | 38 ++++++++++++++++++++ 11 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 03_day/binder_3/my_client.cpp create mode 100644 03_day/binder_4/.my_server.cpp.swp create mode 100644 03_day/binder_4/Android.bp create mode 100644 03_day/binder_4/ILedService.cpp create mode 100644 03_day/binder_4/ILedService.h create mode 100644 03_day/binder_4/ProcessState.cpp create mode 100644 03_day/binder_4/my_client.cpp create mode 100644 03_day/binder_4/my_server.cpp diff --git a/03_day.pptx b/03_day.pptx index 2def9ae972490658b3dfb139e9b4aaf034b3c541..2ab9872d1a44074cda6fa25c4e2d3b292a73b256 100644 GIT binary patch delta 14848 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 NpoN1Qv4=t6{vR>i0_Ok# delta 8309 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 +#include +#include +#include +#include + +using namespace android; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sp binder = sm->getService( String16("led.service") ); + Parcel data, reply; + binder->transact(1, data, &reply); + + return 0; +} + + + diff --git a/03_day/binder_3/my_server.cpp b/03_day/binder_3/my_server.cpp index 26c61af..d2481ff 100644 --- a/03_day/binder_3/my_server.cpp +++ b/03_day/binder_3/my_server.cpp @@ -7,11 +7,28 @@ using namespace android; +class LedService : public BBinder +{ + public: + status_t onTransact( + uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) + { + switch (code) { + case 1: + printf("LedService::LED_ON\n"); + return NO_ERROR; + + default: + return BBinder::onTransact(code, data, reply, flags); + } + } +}; + int main() { sp proc(ProcessState::self()); sp sm(defaultServiceManager()); - sm->addService( String16("led.service"), new BBinder ); + sm->addService( String16("led.service"), new LedService ); IPCThreadState::self()->joinThreadPool(); return 0; diff --git a/03_day/binder_4/.my_server.cpp.swp b/03_day/binder_4/.my_server.cpp.swp new file mode 100644 index 0000000000000000000000000000000000000000..6fe7cf6fb112f61e60f7613a5031163ebd164e15 GIT binary patch literal 12288 zcmeI2!A=uF7{>==q8kN_df+&;id$3KLXFXd^nhYQ0<;0tgJ_-ZPGQY;8Yth z(Fl8s6`aXeF_qUNhwA*1Dl$L@$N(8217v^XnAHZwy9JIj$un3A^5=?**@MVm#Pv9eX2Q+vJHbE0y1>@iXI1kQ& zpLp*N@D;oV&p;i_f*asExCV+K&2bV?Ap>N943GgbKnBPF86X2>fDHUM1N+R1rAcDN zYjccQORakw+p!ehx)DY?j+Q~!E=@OHguco;T45O2r8#El-gHBF-a0Ne`>wS4x`}=I-9NY=tS^ABsV;Dv?${cOhx)kZ9o7Ot_~(355E z2_wopmQk=<=G{PS=`;nDJV6Jh(vq87ZMGNJ)|zWsj1|Fy>DqZU5> z6S+c5KI5d*=pEm<+r0nk65m5pie)93r9Rs>Jj=-ql{UO3Vpj%Jd4}23%|WJrMr0{t z7L8p@H0BsuBD12T6ZozJO>Q8x9^M>>XPrEk!&suRt6Yhm)RAx{&+oY7uoQje28k#6 od}91SR|f~6vfUW!%PzrJ4<4)|L$d8Svg^=cIWlJWETjSKHv=aZuK)l5 literal 0 HcmV?d00001 diff --git a/03_day/binder_4/Android.bp b/03_day/binder_4/Android.bp new file mode 100644 index 0000000..a2a327c --- /dev/null +++ b/03_day/binder_4/Android.bp @@ -0,0 +1,16 @@ +cc_binary { + name: "my_server_cpp_2", + shared_libs: ["liblog", "libutils", "libbinder"], + srcs: [ + "my_server.cpp", + ], +} + +cc_binary { + name: "my_client_cpp_2", + shared_libs: ["liblog", "libutils", "libbinder"], + srcs: [ + "my_client.cpp", + "ILedService.cpp", + ], +} diff --git a/03_day/binder_4/ILedService.cpp b/03_day/binder_4/ILedService.cpp new file mode 100644 index 0000000..6183bd5 --- /dev/null +++ b/03_day/binder_4/ILedService.cpp @@ -0,0 +1,31 @@ +#define LOG_TAG "LedService" + +#include "ILedService.h" + +#include +#include +#include + +namespace android { + +// ---------------------------------------------------------------------- + +class BpLedService : public BpInterface +{ +public: + explicit BpLedService(const sp& impl) + : BpInterface(impl) + { + } + + virtual void ledOn(void) + { + printf("BpLedService::ledOn()\n"); + Parcel data, reply; + remote()->transact(LED_ON, data, &reply); + } +}; + +IMPLEMENT_META_INTERFACE(LedService, "android.os.ILedService"); + +}; // namespace android diff --git a/03_day/binder_4/ILedService.h b/03_day/binder_4/ILedService.h new file mode 100644 index 0000000..fb6b1c1 --- /dev/null +++ b/03_day/binder_4/ILedService.h @@ -0,0 +1,26 @@ +#ifndef ANDROID_ILED_SERVICE_H +#define ANDROID_ILED_SERVICE_H + +#include +#include + +namespace android { + +// ---------------------------------------------------------------------- + +class ILedService : public IInterface +{ +public: + DECLARE_META_INTERFACE(LedService) + + virtual void ledOn() = 0; + + enum { + LED_ON = IBinder::FIRST_CALL_TRANSACTION + }; +}; + +}; // namespace android + +#endif // ANDROID_ISERVICE_MANAGER_H + diff --git a/03_day/binder_4/ProcessState.cpp b/03_day/binder_4/ProcessState.cpp new file mode 100644 index 0000000..07b6867 --- /dev/null +++ b/03_day/binder_4/ProcessState.cpp @@ -0,0 +1,54 @@ +#if 1 +#include +class ProcessState +{ + static ProcessState *gProcess; + ProcessState() + { + printf("fd=open(\"/dev/binder\", O_RDWR)\n"); + } + public: + static ProcessState *self() + { + if( gProcess == 0 ) + gProcess = new ProcessState; + return gProcess; + } + ~ProcessState() + { + printf("close(fd)\n"); + } +}; +ProcessState *ProcessState::gProcess = 0; + +int main() +{ + ProcessState *p1 = ProcessState::self(); + ProcessState *p2 = ProcessState::self(); + //ProcessState process; + return 0; +} +#endif + +#if 0 +#include +class ProcessState +{ + public: + ProcessState() + { + printf("fd=open(\"/dev/binder\", O_RDWR)\n"); + } + ~ProcessState() + { + printf("close(fd)\n"); + } +}; + +int main() +{ + ProcessState p1; + ProcessState p2; + return 0; +} +#endif diff --git a/03_day/binder_4/my_client.cpp b/03_day/binder_4/my_client.cpp new file mode 100644 index 0000000..c651d64 --- /dev/null +++ b/03_day/binder_4/my_client.cpp @@ -0,0 +1,23 @@ + +#include +#include +#include +#include +#include +#include "ILedService.h" + +using namespace android; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sp binder = sm->getService( String16("led.service") ); + sp led = interface_cast( binder ); + led->ledOn(); + + return 0; +} + + + diff --git a/03_day/binder_4/my_server.cpp b/03_day/binder_4/my_server.cpp new file mode 100644 index 0000000..d2481ff --- /dev/null +++ b/03_day/binder_4/my_server.cpp @@ -0,0 +1,38 @@ + +#include +#include +#include +#include +#include + +using namespace android; + +class LedService : public BBinder +{ + public: + status_t onTransact( + uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) + { + switch (code) { + case 1: + printf("LedService::LED_ON\n"); + return NO_ERROR; + + default: + return BBinder::onTransact(code, data, reply, flags); + } + } +}; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sm->addService( String16("led.service"), new LedService ); + IPCThreadState::self()->joinThreadPool(); + + return 0; +} + + +