A framework for attack patterns' discovery in honeynet data - Eurecom
Les design patterns dans l’Android Framework
-
Upload
syrine-trabelsi -
Category
Documents
-
view
722 -
download
0
Transcript of Les design patterns dans l’Android Framework
![Page 1: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/1.jpg)
Les design patterns dans l’Android Framework
Prof. Sheng-De Wang Syrine Trabelsi
![Page 2: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/2.jpg)
2
Plan:
Design Patterns Framework Android Framework & Design Pattern Conclusion
![Page 3: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/3.jpg)
3
Design pattern:
C’est une solution générale réutilisable. Ce n’est pas une conception finie. C’est une description ou un modèle qui peut
aider pour résoudre un problème dans de nombreuses situations.
les design patterns orienté-objet présentent généralement des relations et des interactions entre les classes et les objets.
Ils sont beaucoup utilisés dans la conception de système à base de composant.
![Page 4: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/4.jpg)
4
Cycle de vie du logiciel
![Page 5: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/5.jpg)
5
Le Framework Android
Android Operating Systems
•Est basé sur la conception orientée objet•Et fait partie du système d’exploitation Android
![Page 6: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/6.jpg)
6
Un Framework peut être considérée comme:
Une conception réutilisable d'un système.
Un squelette d'une application qui peut être personnalisé par un développeur d'applications.
![Page 7: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/7.jpg)
7
Frameworks & Patterns
Les design patterns et les Frameworks sont des concepts distincts de différentes natures.
Les Frameworks sont de nature physique et sont des logiciels exécutables utilisés dans la conception ou à l’exécution.
Les design patterns sont de nature logique , représentent les connaissances et l’expérience acquise avec le logiciel.
![Page 8: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/8.jpg)
8
Catégories des Design Patterns :
Créateurs: s’occuper de l'initialisation et la configuration des classes et des objets.
Structuraux: s’occuper de l'interface de découplage et de la mise en œuvre des classes et des objets.
Comportementaux: Traiter les interactions dynamiques entre les associations de classes et des objets
![Page 9: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/9.jpg)
Clin d’oeil sur les design patterns :
ObjectivesDe création De structure De
comportement
Scope Class Factory Method Adapter (class) InterpreterTemplate Method
Objet Abstract FactoryBuilderPrototypeSingleton
Adapter (object)BridgeCompositeDecoratorFacadeFlyweightProxy
Chain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor
Diffère la création d'objet à une autre classe
Diffère la création d'objet à un autre objet
Décrit les algorithmes et contrôle les flux
Décrit comment assembler des objets
9
![Page 10: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/10.jpg)
10
Factory Method Pattern:
La méthode Factory permet de différer l'instanciation des sous-classes.
![Page 11: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/11.jpg)
11
Exemple Android de Pattern Factory Method
View
Activity
GraphicView
OnCreate()
MyDraw
OnCreate()
...View= FactoryMethod()...
return new GraphicView
![Page 12: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/12.jpg)
12
Android Example of Factory Method Pattern-code
public class MyDraw extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new GraphicView(this)); }}
public class GraphicView extends View{ private Paint paint= new Paint(); GraphicView(Context ctx) { super(ctx); } @Override protected void onDraw(Canvas canvas) { int line_x = 10; int line_y = 50; canvas.drawColor(Color.WHITE); paint.setColor(Color.GRAY); paint.setStrokeWidth(3); canvas.drawLine(line_x, line_y, line_x+120, line_y, paint); … } }
![Page 13: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/13.jpg)
13
Le Pattern composite:Le Pattern composite permet de traiter un groupe d'objets comme s’il était une seule instance d'un objet.
![Page 14: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/14.jpg)
14
View et ViewGroup de l’Android
![Page 15: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/15.jpg)
15
Encore!
![Page 16: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/16.jpg)
Observer Pattern:
+attach(in o : Observer)+detach(in o : Observer)+notify()
Subject
+update()
Observer
+getState()
ConcreteSubject
-subjectState
+update()
ConcreteObserver
-observerState
1
-observers
*
{observerState = subject.getState() }
{return subjectState }
{for all o in observers{ o.update() } }
-subject
1 *
16
Un sous-ensemble de publish/subscribe pattern assynchrone
![Page 17: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/17.jpg)
Example de l’Observer Pattern
Subject
Observers
17
![Page 18: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/18.jpg)
Encore!
18
![Page 19: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/19.jpg)
Model-View-Controller Pattern
Application de l’Observer Pattern Avantages:Réutilisation du model, faible couplage
19
La ligne continue représente un lien direct, le pointillé une association indirecte via un observateur (par exemple).
![Page 20: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/20.jpg)
MVC Pattern in Android Cursor: model ListView: view Activity: control
20
SimpleCursorAdapter ListAdapter
Cursor TextView ListView
control
![Page 21: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/21.jpg)
Model
21
![Page 22: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/22.jpg)
View
22
![Page 23: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/23.jpg)
23
![Page 24: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/24.jpg)
Control
24
![Page 25: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/25.jpg)
Encore!// Get a Spinner and bind it to an ArrayAdapter
that // references a String array.Spinner s1 = (Spinner)
findViewById(R.id.spinner1);ArrayAdapter adapter =
ArrayAdapter.createFromResource( this, R.array.colors,
android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.la
yout.simple_spinner_dropdown_item);s1.setAdapter(adapter);
25
Spinner
ArrayAdapter
RXML
![Page 26: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/26.jpg)
// Load a Spinner and bind it to a data query.private static String[] PROJECTION = new String[] { People._ID, People.NAME };
Spinner s2 = (Spinner) findViewById(R.id.spinner2);Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION,
null, null); SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, // Use a template // that displays a // text view cur, // Give the cursor to the list adatper new String[] {People.NAME}, // Map the NAME column in the // people database to... new int[] {android.R.id.text1}); // The "text1" view defined in // the XML templateadapter2.setDropDownViewResource(android.R.layout.simple_spinn
er_dropdown_item);s2.setAdapter(adapter2); 26
![Page 27: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/27.jpg)
27
Spinner
SimpeCursorAdapter
cursor
SQLite
![Page 28: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/28.jpg)
Façade Pattern:
Une façade est un objet qui fournit une interface simplifiée à un vaste ensemble de code, comme une bibliothèque de classes.
28
![Page 29: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/29.jpg)
29
Conclusion: Android Framework- Conception orientée objet- Utilise des Design Patterns- Contient des routines d'exécution Systèmes d'exploitation Android:- Permet d’utiliser trois technologies bien
développées:Kernel Linux, Java, XML
Les facilités offertes par les Design Patterns:- Réutilisation de logiciels- Maintenance- Flexibilité
![Page 30: Les design patterns dans l’Android Framework](https://reader034.fdocuments.net/reader034/viewer/2022051400/5571f8f149795991698e700b/html5/thumbnails/30.jpg)
30
Merci de votre attention!