From 931b702e820a3c4e1b9db34642debda0ee66872d Mon Sep 17 00:00:00 2001 From: ioacademy-jikim Date: Fri, 15 Jun 2018 15:44:42 +0900 Subject: [PATCH] 11 --- 04_day.pptx | Bin 75320 -> 85313 bytes 04_day/ashmem_1/Android.bp | 15 +++++++++++++++ 04_day/ashmem_1/my_client.cpp | 23 +++++++++++++++++++++++ 04_day/ashmem_1/my_server.cpp | 27 +++++++++++++++++++++++++++ 04_day/ashmem_2/Android.bp | 15 +++++++++++++++ 04_day/ashmem_2/my_client.cpp | 26 ++++++++++++++++++++++++++ 04_day/ashmem_2/my_server.cpp | 29 +++++++++++++++++++++++++++++ 7 files changed, 135 insertions(+) create mode 100644 04_day/ashmem_1/Android.bp create mode 100644 04_day/ashmem_1/my_client.cpp create mode 100644 04_day/ashmem_1/my_server.cpp create mode 100644 04_day/ashmem_2/Android.bp create mode 100644 04_day/ashmem_2/my_client.cpp create mode 100644 04_day/ashmem_2/my_server.cpp diff --git a/04_day.pptx b/04_day.pptx index 8c660177b5aced7b5077dc97d02dd23efffa0265..726f2fa802dddfcd59d439f7cab99f15bf583e56 100644 GIT binary patch delta 15555 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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("ashmem.service") ); + sp ashmem = interface_cast( binder ); + char *p = (char*)ashmem->getBase(); + printf("%s\n", p ); + + return 0; +} + + + diff --git a/04_day/ashmem_1/my_server.cpp b/04_day/ashmem_1/my_server.cpp new file mode 100644 index 0000000..ae348ec --- /dev/null +++ b/04_day/ashmem_1/my_server.cpp @@ -0,0 +1,27 @@ + +#include +#include +#include +#include +#include +#include +#include + +using namespace android; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sp heap = new MemoryHeapBase(4096); + sm->addService( String16("ashmem.service"), heap->asBinder(heap) ); + char *p; + p = (char*)heap->base(); + strcpy( p, "Hello Android!!"); + IPCThreadState::self()->joinThreadPool(); + + return 0; +} + + + diff --git a/04_day/ashmem_2/Android.bp b/04_day/ashmem_2/Android.bp new file mode 100644 index 0000000..f0e1f96 --- /dev/null +++ b/04_day/ashmem_2/Android.bp @@ -0,0 +1,15 @@ +cc_binary { + name: "my_server_ashmem_1", + shared_libs: ["liblog", "libutils", "libbinder"], + srcs: [ + "my_server.cpp", + ], +} + +cc_binary { + name: "my_client_ashmem_1", + shared_libs: ["liblog", "libutils", "libbinder"], + srcs: [ + "my_client.cpp", + ], +} diff --git a/04_day/ashmem_2/my_client.cpp b/04_day/ashmem_2/my_client.cpp new file mode 100644 index 0000000..b008e05 --- /dev/null +++ b/04_day/ashmem_2/my_client.cpp @@ -0,0 +1,26 @@ + +#include +#include +#include +#include +#include + +using namespace android; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sp binder = sm->getService( String16("ashmem.service") ); + sp base = interface_cast( binder ); + ssize_t offset=0; + size_t size=0; + sp heap = base->getMemory(&offset, &size); + char *p = (char*)heap->getBase(); + printf("%s\n", p+offset ); + + return 0; +} + + + diff --git a/04_day/ashmem_2/my_server.cpp b/04_day/ashmem_2/my_server.cpp new file mode 100644 index 0000000..4ab7658 --- /dev/null +++ b/04_day/ashmem_2/my_server.cpp @@ -0,0 +1,29 @@ + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace android; + +int main() +{ + sp proc(ProcessState::self()); + sp sm(defaultServiceManager()); + sp heap = new MemoryHeapBase(4096); + sp base = new MemoryBase( heap, 1024*3, 1024); + sm->addService( String16("ashmem.service"), base->asBinder(base) ); + char *p; + p = (char*)heap->base(); + strcpy( p + 3*1024, "Hello Android!!"); + IPCThreadState::self()->joinThreadPool(); + + return 0; +} + + +