- 博客(116)
- 收藏
- 关注
原创 深入Android架构(从线程到AIDL)_28 JNI架构原理_Java与C的对接01
1、 为什么 , Android应用需要Java和C对接呢?前言回顾与展望C的函数(程序)观点
2025-01-13 21:44:24 166
原创 深入Android架构(从线程到AIDL)_27 Messager框架与IMessager接口03
3、 双向沟通的Messenger框架基本設計原則4、 IMessenger接口使用AIDL
2025-01-13 21:15:27 453
原创 深入Android架构(从线程到AIDL)_26 Messager框架与IMessager接口02
在Android框架里,有个IBinder接口来担任跨进程的通讯。在Android框架里,也有一个Message类,两个线程之间能互传Message对象。
2025-01-12 14:35:36 789
原创 深入Android架构(从线程到AIDL)_25 Messager框架与IMessager接口01
1、 Messenger的概念和角色同一进程不同进程目的与方法
2025-01-12 14:11:56 483
原创 深入Android架构(从线程到AIDL)_24 活用IBinder接口于近程通信02
【代码】深入Android架构(从线程到AIDL)_24 活用IBinder接口于近程通信02。
2025-01-11 23:10:30 351
原创 深入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 763
原创 深入Android架构(从线程到AIDL)_22 IPC的Proxy-Stub设计模式04
强龙(天子或曹操)撰写代码(在先);然后地头蛇(App开发者)定义接口(在后)。-- 强龙提供AIDL工具,给地头蛇产出Proxy和Stub类。
2025-01-10 22:12:02 1052
原创 深入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 716
原创 深入Android架构(从线程到AIDL)_20 IPC的Proxy-Stub设计模式02
Android的IPC框架仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数,透过IPC机制而调用到远方(Remote)的onTransact()函数。
2025-01-09 22:02:07 620
原创 深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02
【代码】深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02。
2025-01-08 22:25:25 600
原创 深入Android架构(从线程到AIDL)_17 SurfaceView的UI多线程01
SurfaceView是View的子类,其内嵌了一个用来绘制的Surface。
2025-01-08 22:17:39 490
原创 深入Android架构(从线程到AIDL)_16 应用Android的UI框架03
6、 设计一个GameLoop类别7、 只诞生一次GameLoop对象
2025-01-07 21:06:51 1239
原创 深入Android架构(从线程到AIDL)_15 应用Android的UI框架02
刚才的小线程传递Message给UI线程(丢入UI线程的MQ里),触发UI线程去調用invalidate()函数。Android提供一个postInvalidate()函数来替代上述的动作。由小线程直接去調用postInvalidate()函数,就能间接触发UI线程去調用invalidate()函数了。
2025-01-07 20:40:26 1172
原创 深入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 650
原创 深入Android架构(从线程到AIDL)_13 线程安全的化解之例
7、 线程安全的化解之例复习:Android单线程环境非单线程环境的线程安全议题 范例-1 范例-2同步(Synchronization)化解线程安全的问题
2025-01-06 21:08:43 734
原创 深入Android架构(从线程到AIDL)_12 Android UI 单线程程序
6、 Android UI 单线程程序單線程程序概念单线程可避免线程安全问题SurfaceView与非UI线程
2025-01-05 14:36:22 828
原创 深入Android架构(从线程到AIDL)_11 线程之间的通信架构
当主线程诞生时,就会去执行一个代码循环(Looper),以便持续监视它的信息队列(Message Queue简称MQ)。当UI事件发生了,通常会立即丢一个信息(Message)到MQ,此时主线程就立即从MQ里面取出该信息,并且处理之
2025-01-05 14:20:54 1414
原创 深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
在Android里,无论组件在那一个进程里执行,于预设情形下,他们都是由该进程里的主线程来负责执行之。
2025-01-04 21:28:45 541
原创 深入Android架构(从线程到AIDL)_09 认识Android的主线程
当我们启动某一支AP时, Android就会诞生新进程(Process),并且将该AP程序加载这新诞生的进程里。每个进程在其诞生时刻,都会诞生一个主线程,又称为UI线程。
2025-01-04 21:11:59 1076
原创 深入Android架构(从线程到AIDL)_08 认识Android的主线程
【代码】深入Android架构(从线程到AIDL)_08 认识Android的主线程。
2025-01-03 21:45:33 942
原创 深入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 663
原创 深入Android架构(从线程到AIDL)_06 短程通信 vs. 远程通信
【代码】深入Android架构(从线程到AIDL)_06 短程通信 vs. 远程通信。
2025-01-02 22:01:33 635
原创 深入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 854
原创 深入Android架构(从线程到AIDL)_04 使用IBinder接口
使用IBinder接口,跨进程去调用MediaPlayer播放引擎,以便播放MP3音乐
2025-01-01 21:39:52 512
原创 深入Android架构(从线程到AIDL)_03 IPC的IBinder接口
大家都知道,当两个类都在同一个进程里执行时,两者之间的沟通,只要采取一般的函数调用(Function Call)就行了,既快速又方便。一旦两个类分别在不同的进程里执行时,两者之间的沟通,就不能采取一般的函数调用途径了。只好采取IPC沟通途径Android框架的IPC沟通仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数,透过IPC机制而调用到远方(Remote)的onTransact()函数。
2025-01-01 21:12:06 1063
原创 深入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 368
原创 深入Android架构(从线程到AIDL)_01 什么是IPC通信
IPC(Inter-Process Communication)通信,是跨越两个不同进程(Process)之通信。一般而言,一个Android应用程序里的各组件(如Activity、 Service等)都在同一个进程里执行。这种在同一进程内的通信,又称为短程通信,意味着,两个Activity在同一个进程(Process)里执行。相对地, 远程(Remote)通信的意思是:两个组件(如Activity或Service)分别在不同的进程里执行;两者之间是IPC通信, 又称远程通信。
2024-12-30 21:14:29 424
原创 梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架04
在此模式里,是由R(BroadcastReceiver)启动A(Activity)。在本范例里,将由开机的事件来启动R。在此模式里,是由R(BroadcastReceiver)启动S(Service) ,然后S再启动A。在此模式里,是由R(BroadcastReceiver)启动S(Service)。2. 数据传输或交换(Data Exchange)关系。1. 启动(Activation)关系。
2024-12-29 14:11:32 753
原创 梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架03
BroadcastReceiver : 接收讯息及事件。– ContentProvider : 储存共享数据。– Service : 幕后服务(如播放背景音乐)– Activity : 处理UI互动的事情。
2024-12-28 22:24:19 1495
原创 梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架02
IoC又称为「反向呼叫」或「反向调用」。而反向调用的相反词就是:正向调用。正向调用就是App子类调用基类的函数。
2024-12-28 22:07:02 474
原创 梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架01
1. 传统无框架2. 单层框架3. 复合型框架4. 控制机制5. 认识Android框架的实践技术6. Intent-based Programming 技术7. 四大组件之相互启动关系8. 认识ContentProvider
2024-12-27 22:12:54 498
原创 梳理你的思路(从OOP到架构设计)_认识框架(Framework) 02
目录1、框架是EIT造形的组合2、再来看看Composite设计模式的范例编辑
2024-12-27 21:08:22 833
原创 梳理你的思路(从OOP到架构设计)_认识框架(Framework) 01
在特定领域(Domain)里,将EIT造形的部份有意义地组合起来,就成为框架(Framework)了。
2024-12-26 21:53:12 346
原创 梳理你的思路(从OOP到架构设计)_设计模式Android + Composite模式
【代码】梳理你的思路(从OOP到架构设计)_设计模式Android + Composite模式。
2024-12-26 21:34:40 581
原创 梳理你的思路(从OOP到架构设计)_设计模式Observer模式
定义对象间的1:N依赖关系,以便当一个主体对象(如A)的状态发生改变时,所有依赖于它的众多对象(如B, C, D …)都得到通知,然后可向主体对象(A)取得最新状态内容。
2024-12-23 21:46:52 839
原创 梳理你的思路(从OOP到架构设计)_设计模式Factory Method模式
在Android框架里,处处可见FactoryMethod模式。例如, Activity、 Service等抽象类别里都定义了onCreate()函数,它就是一个典型的FactoryMethod函数。
2024-12-22 14:10:41 617
原创 梳理你的思路(从OOP到架构设计)_设计模式Template Method模式
其中, onDraw()函数实践画图,将图形绘制于View的画布(Canvas)上,并显示出来;而invalidate()函数则启动画面的刷新,重新呼叫一次onDraw()函数。在View类别里有个onDraw()函数, View类别体系里的每一个类别都必须覆写(Override) 这个onDraw()函数,来执行实际绘图的动作。Android的绘图是使用画布(Canvas)来把图显示于View的窗口里,并且从View类别而衍生子类别,提供更多功能来将图形或图片绘制于画布上。
2024-12-22 13:54:18 696
Scrum 的权威指南-英文版
2024-12-10
Scrum 的权威指南-中文版
2024-12-10
语音识别实战-语音合成-tacotron2
2024-12-06
语音识别实战-语音分离
2024-12-06
语音识别实战-stargan-vc2
2024-12-06
语音识别-seq2seq模型
2024-12-05
自动驾驶汽车、自动驾驶出租车以及城市交通革命
2024-12-05
智能汽车行业发展报告-分析前景
2024-12-04
Python基础学习-13模块的介绍
2024-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人