Sunday, August 8, 2010

Android - telephony

1.java --- dialer and java packages (gsm,cdma)
2.c,c++ --- rild
3.c,c++ --- vendor-ril.so
4.kernel --- vendor driver ( serial, ethernet )

normally baseband contains the mic,speaker redirector and the protocol
vendor-ril can send commands to modify the behaviour

Android - graphics

1. 2d renderer is using skia , its purely software
2. 3d renderer is using pixel flinger, this is software. see libagl.so
3. Hw 3d renderer , see libhgl.so

Android - user mode

contains
1.java layer
2.native layer - c,c++

under java
1.activities,services,receivers,providers

under native
1.daemons

communication between them
1.activities,services, .., and .. uses binder to communicate
2.a,s,.,. communicate with native layer using binders

but jni is also used in cases where the java can call on c,c++
also domain sockets can be used for communication

binder is a mechanism where a,s,r,p communicate with each other using ioctls and
binder driver

complication because, binder will invoke arbitraty threads from a pool to accomplish a task.In addition to arbitrary threads there is also main thread

Sunday, December 27, 2009

Android memory

Per-process

a.Virtual heap

b.Native

Virtual heap - garbage collected

Native - Used by zygote and bitmaps

Together they have a limit of 16MB