1
0
mirror of https://github.com/ioacademy-jikim/android_framwork synced 2025-06-07 16:06:29 +00:00
This commit is contained in:
ioacademy-jikim 2018-06-15 15:44:42 +09:00
parent 96638c8b17
commit 931b702e82
7 changed files with 135 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,15 @@
cc_binary {
name: "my_server_ashmem",
shared_libs: ["liblog", "libutils", "libbinder"],
srcs: [
"my_server.cpp",
],
}
cc_binary {
name: "my_client_ashmem",
shared_libs: ["liblog", "libutils", "libbinder"],
srcs: [
"my_client.cpp",
],
}

View File

@ -0,0 +1,23 @@
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <binder/Binder.h>
#include <binder/IMemory.h>
#include <utils/String16.h>
using namespace android;
int main()
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm(defaultServiceManager());
sp<IBinder> binder = sm->getService( String16("ashmem.service") );
sp<IMemoryHeap> ashmem = interface_cast<IMemoryHeap>( binder );
char *p = (char*)ashmem->getBase();
printf("%s\n", p );
return 0;
}

View File

@ -0,0 +1,27 @@
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <binder/Binder.h>
#include <binder/IPCThreadState.h>
#include <utils/String16.h>
#include <binder/MemoryHeapBase.h>
#include <string.h>
using namespace android;
int main()
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm(defaultServiceManager());
sp<IMemoryHeap> 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;
}

View File

@ -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",
],
}

View File

@ -0,0 +1,26 @@
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <binder/Binder.h>
#include <binder/IMemory.h>
#include <utils/String16.h>
using namespace android;
int main()
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm(defaultServiceManager());
sp<IBinder> binder = sm->getService( String16("ashmem.service") );
sp<IMemory> base = interface_cast<IMemory>( binder );
ssize_t offset=0;
size_t size=0;
sp<IMemoryHeap> heap = base->getMemory(&offset, &size);
char *p = (char*)heap->getBase();
printf("%s\n", p+offset );
return 0;
}

View File

@ -0,0 +1,29 @@
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <binder/Binder.h>
#include <binder/IPCThreadState.h>
#include <utils/String16.h>
#include <binder/MemoryHeapBase.h>
#include <binder/MemoryBase.h>
#include <string.h>
using namespace android;
int main()
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm(defaultServiceManager());
sp<IMemoryHeap> heap = new MemoryHeapBase(4096);
sp<IMemory> 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;
}