10. Key Features 2.6.23 2.6.25 2.6.27 2.6.29
1 Alarm Driver O O O O
2 Android Logger O O O O
3 Low Memory Killer O O O O
4 Power Management O O O O
5 USB Gadget O O O O
6 ASHMEM X O O O
7 PMEM X X O O
8 x86 Support X X O O
9 ./drivers/staging/Android/ X X X O
14. Application Developers
Applications change
Application Framework
Surface Manager Dalvik VM
System
Media Framework Shared Libraries
Image
Linux Kernel
15. Product Branch Maintainer
Applications
Application Framework
Surface Manager Dalvik VM
rebuild
Media Framework Shared Libraries
Linux Kernel
16. Hardware Developing
Applications
Application Framework
Surface Manager Dalvik VM
change
Media Framework Shared Libraries
Linux Kernel change
17. Architecture Porting
Applications
Application Framework
Surface Manager Dalvik VM
porting
Media Framework Shared Libraries
Linux Kernel
35. public class TunitBill extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Debug.startMethodTracing("TunitB");
CharSequence time = Long.toString(SystemClock.elapsedRealtime());
Debug.stopMethodTracing();
}
}
36. public class TunitBill extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Debug.startMethodTracing("TunitB");
CharSequence time = Long.toString(SystemClock.elapsedRealtime());
Debug.stopMethodTracing();
}
}
•
method-level
42. Avoid Creating Objects
Use Native Methods
Prefer Virtual Over Interface
Prefer Static Over Virtual
Avoid Internal Getters/Setters
Cache Field Lookups
Declare Constants Final
Use Enhanced For Loop Syntax With Caution
Avoid Enums
Use Package Scope with Inner Classes
Avoid Float
43. Avoid Creating Objects
Use Native Methods
Prefer Virtual Over Interface
Prefer Static Over Virtual
Avoid Internal Getters/Setters
Cache Field Lookups
Declare Constants Final
Use Enhanced For Loop Syntax With Caution
Avoid Enums
Use Package Scope with Inner Classes
Avoid Float
• Designing for Performance -- Android Dev
Guide
47. public class TunitChris extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
}
}
52. public class TunitChris extends Activity implements
View.OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(this);
}
public void onClick(View v) {
Toast.makeText(
this,
"Yes.",
Toast.LENGTH_LONG).show();
}
}
97. VFS
Driver D
Driver B
Driver A
Driver E
Driver C
Copyright (c) 2009 Jollen’s Consulting, www.jollen.org/consulting Embedded Linux
98. kernel
buses devices classes firmware kobject
Core Driver Model – Subsystems (ksets…) /sys
Driver D
Driver B
Driver A
Driver E
Driver C
Copyright (c) 2009 Jollen’s Consulting, www.jollen.org/consulting Embedded Linux