Android从程序员到架构师之路
文章平均质量分 71
Android从程序员到架构师之路
思忖小下
it
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
掌握API和控制点(从Java到JNI接口)_39 JNI从C调用Java函数 02
JNI_从C调用Java函数C调用Java函数,并不一定表示C层拥有控制点。但是, C层拥有控制点的必备表现是: C调用Java层函数原创 2025-02-09 21:50:23 · 334 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_38 JNI从C调用Java函数 01
1. Why? 将控制点下移到下C/C++层2. 控制点与函数调用3. How-to: 从C调用Java函数4. C函数存取Java对象的值5. 从C创建Java对象原创 2025-02-08 23:31:42 · 388 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_37 JNI开发与NDK 05
此时, 将此*.so的<函数名称表>登记到VM里。2. VM要求*.so做一些初期设定工作(Initialization),例如登记<函数名称表>registerNativeMethods()来更换本地函数之指针,而达到弹性抽换本地函数之目的。由于gMethods[]是一个<名称,函数指针>对照表,在程序执行时,可多次调用。1. VM询问此*.so使用的JNI版本编号。2. 可在执行期间彈性进行抽换。1. 更有效率去找到C函数。原创 2025-02-07 22:13:47 · 343 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_36 JNI开发与NDK 04
Java代码在VM上执行。在执行Java代码的过程中,如果Java需要与本地代码(*.so)沟通时, VM就会把*.so視为插件<Tn>而加载到VM里。然后让Java函数呼叫到这插件<Tn>里的C函数。原创 2025-02-03 16:49:17 · 278 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_35 JNI开发与NDK 03
【代码】掌握API和控制点(从Java到JNI接口)_35 JNI开发与NDK 03。原创 2025-02-01 22:28:44 · 912 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_34 JNI开发与NDK 02
使用Android NDK当你安装好NDK环境之后,就能动手利用NDK环境来开发本地(Native)的C程序了。于此,兹举例说明开发程序。原创 2025-01-16 22:17:29 · 920 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_33 JNI开发与NDK 01
Androd框架里,上层是Java框架,而下层是C/C++框架。这两层框架之间会有密切的沟通。此时JNI(Java Native Interface)就扮演双方沟通的接口了原创 2025-01-16 22:04:12 · 575 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_32 JNI架构原理_Java与C的对接05
一般EIT造形是同语言的。也就是、 和都使用同一种语言撰写的,例如上述的Java、 C/C++等。于此,将介绍一个EIT造形的变形:是以Java撰写的。则是以C语言撰写的。原创 2025-01-15 21:39:14 · 415 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_31 JNI架构原理_Java与C的对接04
4、 EIT造形的C和Java组合实现目前对象(Current Object)指针换成为Java类原创 2025-01-15 21:29:07 · 266 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_30 JNI架构原理_Java与C的对接03
2.4 以C结构表达类(class),并创建对象(object)认识C函数指针范例2.5 在C函数里存取对象的属性(attribute)范例原创 2025-01-14 21:55:01 · 456 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_29 JNI架构原理_Java与C的对接02
2、 EIT造形的Java实现3、 EIT造形的C语言实现2.1 复习: C语言的结构(struct)2.2 复习: 结构指针(Pointer)2.3 复习: 动态内存分配原创 2025-01-14 21:37:01 · 967 阅读 · 0 评论 -
掌握API和控制点(从Java到JNI接口)_28 JNI架构原理_Java与C的对接01
1、 为什么 , Android应用需要Java和C对接呢?前言回顾与展望C的函数(程序)观点原创 2025-01-13 21:44:24 · 374 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_27 Messager框架与IMessager接口03
3、 双向沟通的Messenger框架基本設計原則4、 IMessenger接口使用AIDL原创 2025-01-13 21:15:27 · 777 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_26 Messager框架与IMessager接口02
在Android框架里,有个IBinder接口来担任跨进程的通讯。在Android框架里,也有一个Message类,两个线程之间能互传Message对象。原创 2025-01-12 14:35:36 · 974 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_25 Messager框架与IMessager接口01
1、 Messenger的概念和角色同一进程不同进程目的与方法原创 2025-01-12 14:11:56 · 665 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_24 活用IBinder接口于近程通信02
【代码】深入Android架构(从线程到AIDL)_24 活用IBinder接口于近程通信02。原创 2025-01-11 23:10:30 · 442 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_23 活用IBinder接口于近程通信01
其将 myBinder的IBinder接口回传给框架,并由框架调用onServiceConnected()函数,将此接口回传给myActivity。Step-4. myActivity调用myBinder类的getService()函数,取得myService的IS接口。6. 想一想,可以透过myService类的静态(static)属性或函数来取得myService对象的指针吗?4. 必须先取得myService对象的指针,才能调用f1()函数去存取对象的属性(Attribute)值。原创 2025-01-11 23:00:04 · 829 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_22 IPC的Proxy-Stub设计模式04
强龙(天子或曹操)撰写代码(在先);然后地头蛇(App开发者)定义接口(在后)。-- 强龙提供AIDL工具,给地头蛇产出Proxy和Stub类。原创 2025-01-10 22:12:02 · 1316 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_21 IPC的Proxy-Stub设计模式03
目录3、包裝IBinder接口 -- 使用Proxy-Stub设计模式EIT造型的双层组合 4、 谁来写Proxy及Stub类呢? -- 地头蛇(App开发者)自己写范例定义一个新接口: IPlayer 撰写一个Stub类: PlayerStub撰写mp3Binder类撰写mp3RemoteService类 撰写一个Stub类: PlayerStub撰写一个Proxy类: PlayerProxyAPP的代码撰写mp3RemoteService类 Play原创 2025-01-10 21:27:42 · 1000 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_20 IPC的Proxy-Stub设计模式02
Android的IPC框架仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数,透过IPC机制而调用到远方(Remote)的onTransact()函数。原创 2025-01-09 22:02:07 · 725 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_19 IPC的Proxy-Stub设计模式01
复习: IBinder 接口原创 2025-01-09 21:09:45 · 595 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02
【代码】深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02。原创 2025-01-08 22:25:25 · 659 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_17 SurfaceView的UI多线程01
SurfaceView是View的子类,其内嵌了一个用来绘制的Surface。原创 2025-01-08 22:17:39 · 546 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_16 应用Android的UI框架03
6、 设计一个GameLoop类别7、 只诞生一次GameLoop对象原创 2025-01-07 21:06:51 · 1317 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_15 应用Android的UI框架02
刚才的小线程传递Message给UI线程(丢入UI线程的MQ里),触发UI线程去調用invalidate()函数。Android提供一个postInvalidate()函数来替代上述的动作。由小线程直接去調用postInvalidate()函数,就能间接触发UI线程去調用invalidate()函数了。原创 2025-01-07 20:40:26 · 1230 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_14 应用Android的UI框架01
1. UI线程、 View与onDraw()函数2. 基本游戏循环(GameLoop)3. 使用UI线程的MQ(Message Queue)4. 诞生一个小线程,担任游戏线程5. 小线程調用postInvalidate()6. 设计一个GameLoop类别7. 只诞生一次GameLoop对象原创 2025-01-06 21:22:12 · 715 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_13 线程安全的化解之例
7、 线程安全的化解之例复习:Android单线程环境非单线程环境的线程安全议题 范例-1 范例-2同步(Synchronization)化解线程安全的问题原创 2025-01-06 21:08:43 · 802 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_12 Android UI 单线程程序
6、 Android UI 单线程程序單線程程序概念单线程可避免线程安全问题SurfaceView与非UI线程原创 2025-01-05 14:36:22 · 938 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_11 线程之间的通信架构
当主线程诞生时,就会去执行一个代码循环(Looper),以便持续监视它的信息队列(Message Queue简称MQ)。当UI事件发生了,通常会立即丢一个信息(Message)到MQ,此时主线程就立即从MQ里面取出该信息,并且处理之原创 2025-01-05 14:20:54 · 1651 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
在Android里,无论组件在那一个进程里执行,于预设情形下,他们都是由该进程里的主线程来负责执行之。原创 2025-01-04 21:28:45 · 604 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_09 认识Android的主线程
当我们启动某一支AP时, Android就会诞生新进程(Process),并且将该AP程序加载这新诞生的进程里。每个进程在其诞生时刻,都会诞生一个主线程,又称为UI线程。原创 2025-01-04 21:11:59 · 1140 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_08 认识Android的主线程
【代码】深入Android架构(从线程到AIDL)_08 认识Android的主线程。原创 2025-01-03 21:45:33 · 1027 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_07 线程(Thread) 概念
其诞生一个myThread对象,并且由JMain调用Thread的start()函数。这start()就产生一个小线程去执行 myThread子类别里的run()函数。此时, main()先诞生一个Task类的对象,并且诞生一个Thread基础的对象。接着,执行到下一个指令: t.start();此时, main()就调用Thread的start()函数;这start()就产生一个小线程去执行run()函数。原创 2025-01-03 21:32:39 · 741 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_06 短程通信 vs. 远程通信
【代码】深入Android架构(从线程到AIDL)_06 短程通信 vs. 远程通信。原创 2025-01-02 22:01:33 · 692 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_05 IPC通信的三步骤
Step-3. Activity調用IBinder接口的transact()函数,透过底层Binder Driver驱动而间接調用到Binder基类的execTransact()函数,转而調用 myBinder的onTransact()函数。Step-2. Activity調用bindService()来绑定Service。Step-1. Activity使用startService()函數來啟動Service。• Step-1. 調用startService()。原创 2025-01-02 21:31:22 · 913 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_04 使用IBinder接口
使用IBinder接口,跨进程去调用MediaPlayer播放引擎,以便播放MP3音乐原创 2025-01-01 21:39:52 · 562 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_03 IPC的IBinder接口
大家都知道,当两个类都在同一个进程里执行时,两者之间的沟通,只要采取一般的函数调用(Function Call)就行了,既快速又方便。一旦两个类分别在不同的进程里执行时,两者之间的沟通,就不能采取一般的函数调用途径了。只好采取IPC沟通途径Android框架的IPC沟通仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数,透过IPC机制而调用到远方(Remote)的onTransact()函数。原创 2025-01-01 21:12:06 · 1182 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_02 IPC通信
其中, FirstActivity和LoadActivity两个类别会加载预设的进程里。而LoadService则会加载于名为“remote” 的独立进程里。并且,由进程#1的主线程去执行FirstActivity和LoadActivity(的函数)。而由进程#2的主线程去执行LoadService。在Android的各进程里,都有一个VM对象,执行Java代码,也引导JNI本地程序的执行,实现Java与C/C++程序之间的沟通。原创 2024-12-30 21:21:17 · 425 阅读 · 0 评论 -
深入Android架构(从线程到AIDL)_01 什么是IPC通信
IPC(Inter-Process Communication)通信,是跨越两个不同进程(Process)之通信。一般而言,一个Android应用程序里的各组件(如Activity、 Service等)都在同一个进程里执行。这种在同一进程内的通信,又称为短程通信,意味着,两个Activity在同一个进程(Process)里执行。相对地, 远程(Remote)通信的意思是:两个组件(如Activity或Service)分别在不同的进程里执行;两者之间是IPC通信, 又称远程通信。原创 2024-12-30 21:14:29 · 499 阅读 · 0 评论 -
梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架05
Activity启动和使用ContentProvider原创 2024-12-29 21:01:16 · 349 阅读 · 0 评论
分享