
Android
文章平均质量分 89
old_man
这个作者很懒,什么都没留下…
展开
-
JNI 原理与入门
JNI 是什么HelloWorld编写 java 文件编译 java 文件编写 c 语言文件编译 c 语言文件运行Android 中的 JNI 简介NDKNative 层和 JNI 层附录附录1让 Java 自动帮我们生成C函数名附录2如何生成 dll方法1 使用 VisualStudio方法2 使用 cl 命令行JNI 是什么JNI = Java Native In原创 2017-05-01 21:05:21 · 309 阅读 · 0 评论 -
JNI 原理进阶
回顾JNI 要点Java 要 load 库Java 要把方法声明为 native 的C 语言实现 Java 的 native 方法时,函数名有固定形式,可以用 javah 生成头文件得到函数名Java 调用 C 函数时,JVM 会自动传两个参数下去: 分别是 JNIEnv * 和 jobject 类型的层:Java -> JNI -> Native分三层 最上面是 Java 层中间是原创 2017-05-02 14:56:08 · 882 阅读 · 0 评论 -
基于 Binder 的跨进程通信以及 Service(二):Java 层
同进程使用Service(一)比如,你做了一个音乐播放 app,里面有一个 MusicService 负责后台播放音乐,对外提供 play(),pause() 的接口你在一个 Activity 里想调用这个 Service 的 play(),怎么搞?必须在这个 Activity 里拿到刚才启动的 MusicService 的实例,但这是不可能的。Service 实例是由安卓OS维护的,你拿不到原创 2017-05-14 23:37:56 · 651 阅读 · 0 评论 -
zygote 和 app 的启动过程
写在前面zygote 是在一个 Android Linux 上的一个进程zygote 进程在启动的过程中,fork 出了 system_server 进程zygote 进程稳定后,就在自己的主循环里等待客户端连接自己执行命令system_server 进程里面跑着很多 Android 系统的 Service,包括 ActivityManagerService用户 app 进程,都是从 zy原创 2017-05-07 11:46:39 · 905 阅读 · 0 评论 -
基于 Binder 的跨进程通信以及 Service(一):Native 层
写在前面本文集中讲的是 Native 层的 Binder 通信以及 ServiceJava 层的在下一篇里单讲理论基础1. 服务是什么?可以简单的把服务理解为进程里的一个对象,它能干活,而且能被别的进程“引用”。比如你搞了个进程,里面 new 了一个 MyWorker 对象,该对象可以被其他进程“引用”,并调用它的 do_work() 函数来干活。那么这个对象就是一个服务。一个对象想成为原创 2017-05-09 09:21:50 · 649 阅读 · 0 评论