android 跨进程通信
文章平均质量分 61
we1less
学习
展开
-
Android Binder java端的调用流程
本篇从ServiceManager.addService中开始讲起Android Binder getService(java)源码分析(二)_we1less的博客-CSDN博客关于native层在java端的代理ServiceManagerProxy对象已经在这篇阐述过了addService路径 frameworks/base/core/java/android/os/ServiceManagerNative.javadata.writeStrongBin...原创 2021-10-21 22:22:59 · 1122 阅读 · 1 评论 -
Android Binder 服务端分析
本篇文章以这篇为锚点Android Binder 应用程序Binder 启动源码分析_we1less的博客-CSDN博客从startThreadPool开始进行分析joinThreadPool 路径 frameworks/native/libs/binder/IPCThreadState.cpp 循环执行getAndExecuteCommandvoid joinThreadPool(bool isMain = true);...原创 2021-10-20 23:41:21 · 453 阅读 · 0 评论 -
Android Binder getService(java)源码分析(二)
本篇是继续上一篇进行分析的https://blog.csdn.net/we1less/article/details/120731185代码回到ServiceManager.java 路径frameworks/base/core/java/android/os/ServiceManager.java 上一篇文章说道BinderInternal.getContextObject()返回的是android/os/BinderProxy对象,它是java层的,这个对象的mObject成...原创 2021-10-13 22:55:06 · 406 阅读 · 2 评论 -
Android Binder getService(java)源码分析(一)
android开发中java端调用getSystemService(xxx);getSystemService(Context.CONNECTIVITY_SERVICE);Activity.java 路径frameworks/base/core/java/android/app/Activity.java如果获取的Service不是代码中所示的,那么就调用父类ContextThemeWrapper的getSystemServicepublic class Act...原创 2021-10-12 21:56:02 · 533 阅读 · 0 评论 -
Android Binder (可以直接写在项目中的写法)
此篇为大家展示一个写在项目中的写法,native层的service注册和获取服务,加上回调。首先展示一下项目目录binder通信是基于aidl接口实现的,使用aidl接口可以省略许多不必要的代码。工程的基础mkAndroid.mkinclude $(call all-subdir-makefiles)Android.bpsubdirs = ["cmd","lib","service"]cmd文件夹代表服务从这个文件夹启动,当然如果特别完整的需要把 .rc文件和S.原创 2021-10-11 21:17:16 · 726 阅读 · 0 评论 -
Android Binder ServiceManager启动源码分析
此篇文章的解析参考Android Binder(C语言版本)_we1less的博客-CSDN博客模仿例子参考Android Binder(C语言版本例子)_we1less的博客-CSDN博客servicemanager.rc 路径 frameworks/native/cmds/servicemanager/servicemanager.rcservice servicemanager /system/bin/servicemanager class core animation .原创 2021-09-29 20:52:13 · 205 阅读 · 0 评论 -
Android Binder startAcitivity的Binder过程
以 startActivity(newIntent); 为例路径 frameworks/base/core/java/android/app/Activity.java@Override public void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { startActivityForResult(intent, -1, opt...原创 2021-09-23 22:52:19 · 156 阅读 · 0 评论 -
Android Binder 应用程序Binder 启动源码分析
android8.1启动过程(七) SystemServer_we1less的博客-CSDN博客这篇文章说道SystemServer进程主要用于创建系统服务,同时初始化Zygote调用gCurRuntime->onZygoteInit();本文从这继续解析binder的启动过程。onZygoteInit AOSP/frameworks/base/cmds/app_process/app_main.cppvirtual void onZygoteInit() { .原创 2021-09-28 23:27:12 · 342 阅读 · 0 评论 -
Android Binder(C语言版本)
android中存在用c语言写的Binder应用,接下来以这个文件开始分析当进行Binder通信过程中main frameworks/native/cmds/servicemanager/service_manager.c1.打开Binder驱动int main(int argc, char** argv){ ... if (argc > 1) { driver = argv[1]; } else { driver =..原创 2021-06-24 22:18:07 · 811 阅读 · 3 评论 -
Android Binder(C语言版本例子)
cmds/servicemanager/godv_server.c/* Copyright 2008 The Android Open Source Project */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include "binder.h"#include "godv_server.h"void sayhello(v.原创 2021-06-25 00:14:52 · 454 阅读 · 0 评论 -
Android Binder(C++版本)
BInder服务的C++实现1. 定义接口类 其中定义抽象方法IGodvService { //抽象方法 sayhello sayhello_to}2. server端实现BnGodvService : IGodvService{ //实现函数抽象方法 sayhello sayhello_to //实现onTransact方法 onTransact }3. client端实现BpGodv..原创 2021-06-29 22:35:19 · 361 阅读 · 0 评论 -
Android Binder(C++版本例子)
packages/apps/Godv/IGodvService.h//// Created by godv on 21-6-29.// 这个是接口// 参考 frameworks/av/include/media/IMediaPlayerService.h#ifndef ANDROID_IGODVSERVICE_H#define ANDROID_IGODVSERVICE_H#include <utils/Errors.h> // for status_t#inclu原创 2021-06-29 23:26:02 · 805 阅读 · 1 评论 -
Android Socket学习(三)三方apk执行shell命令
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/types.h>#include <unistd.h>#include <sys/wait.h>#include <sys/stat.h>#include <sys/un.h>#include <sys.原创 2021-09-27 00:04:05 · 548 阅读 · 0 评论 -
Android Socket学习(二)java与native_socket通信
native端 socket_sevice.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <arpa/inet.h>#include <sys/select.h>#include <sys/epoll.h>#include <sys/un.h>int main()..原创 2021-09-26 22:33:46 · 381 阅读 · 0 评论 -
Android Socket学习(一)unix_socket
关于unix_socket的背景这里放一篇链接Android Framework实战开发视频--跨进程通信之Socket通信_learnframework的博客-CSDN博客本文代码也是基于本篇提供的基本代码编写的unix_socket_service.c#include <stdlib.h>#include <stdio.h>#include <stddef.h>#include <sys/socket.h>#include <原创 2021-09-24 22:31:32 · 501 阅读 · 0 评论