Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
camera_design [2020/08/30 20:14] paul [OOP] |
camera_design [2020/08/31 03:24] (current) paul [Observer Pattern] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Camera Design ====== | ====== Camera Design ====== | ||
+ | |||
+ | ===== Android Binder ===== | ||
+ | |||
+ | Android uses an IPC framework called Binder that allows for inter process communication. Everyone in Android is connected together in Binder. | ||
+ | |||
+ | ===== Intents ===== | ||
+ | |||
+ | Android allows for processes to communicate with each other using Intents. You can send intents to other processes and then handle their callbacks. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Binder Structure ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Binder allows us to communicate to other process through a managed way. It's pretty much roscore in ROS. | ||
+ | |||
+ | Theres a bunch of different stuff that will happen to get messages from senders to receivers. No need to worry about it but here is how it looks. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Here is an interesting example of how this plays out when an app requests a location service. | ||
+ | |||
+ | {{: | ||
===== OOP ===== | ===== OOP ===== | ||
Line 58: | Line 82: | ||
===== OOP Patterns ===== | ===== OOP Patterns ===== | ||
+ | |||
+ | The following are different design patterns that can be implemented. | ||
+ | |||
==== Strategy Pattern ==== | ==== Strategy Pattern ==== | ||
Line 64: | Line 91: | ||
{{: | {{: | ||
- | Here is some implemented C++ code | + | Here is some implemented C++ code. To see some code, check out ex4 of oop1 in |
+ | learn. Use the strategy pattern when you need to use one of several behaviors | ||
+ | dynamically. | ||
- | <code cpp> | + | ==== Observer Pattern ==== |
+ | |||
+ | This very similar to the publisher subscriber model. An Observer | ||
+ | |||
+ | {{: | ||
===== Video Compression ==== | ===== Video Compression ==== | ||