Embedded Android Workshop

160
AB CADEFA B A B FA DBFA

description

Karim Yaghmour's "Embedded Android Workshop" from the Embedded Linux Conference 2012

Transcript of Embedded Android Workshop

Page 1: Embedded Android Workshop

��

������������AB��CADEFA�

����������B�����A������������

��B�����F�A��D�B����F�A�

Page 2: Embedded Android Workshop

��

��������A���BC��DBA��BEB�BF������������A�C�B��C�B�E����DD������BC������������������������������CD����������������BC����C������ ��!!�C�B�E���DD�����C"!�������!F���B!���!

���CF�����C�#�C�D�����B�A�D���$�%&'��'�('�)�

� ������A��D����C�DB��B����������� ��������B����*��A��+�,$��E�C����"����������BC���C��������B�"�-�����A�"�������"����,

� .�������"�C���������C�A���D�����D������B��C������F���/�01C"�B���B�2�.(&�DD�AB�������A�C���B���"�C��B�A�����F���/��� �C"���������/��C��B C� CB���

� 3���BC���C����������������0)��E�C�A�B�A!�C������D4�A�F�2�� B����������C"���B�������������

� 3���BC��51(67)'8��C�D����"�����A��B����0�F���2���A��B�����C�B������������������

*�,��� �C"������������$�1 �C�������

��������A����C�B��A�F���9BCD�3B"�D��C

1C"�B���B���///�� �C������D!��DD����!A���

�)��E�C�A�B�A!�C������D4�A�F�

Page 3: Embedded Android Workshop

��

�F���

� �����C����

� 7��C�A���A�&��:��CB�������������;;;

� 1C"�B��A��A����B�A�C��B����*��C���!C��B���,

� �CB��"$������D�)�E$���������"$����

Page 4: Embedded Android Workshop

<�

�F������AC�A

� =�"�

� 5B���D�E�"

� ���B����

Page 5: Embedded Android Workshop

>�

�!A���!BA��!A�������������AB�

� 6B���

� =���C�

� '�������D

� &�"B���CBD�/�C�

� %�B���CD�B�A��BCA/BC��C�#�C�D����

� )�E��� D���������

Page 6: Embedded Android Workshop

?�

���6B���

� 5�B��C��

� .@������ ��

� � ������ ��

Page 7: Embedded Android Workshop

A�

�����5�B��C��

� � ��B�����CBD�/�C����BF��"�C�����B�A�C� �B��D���������D ������

� )B�E��EC��B��DB������ �D4�A���C�D�F���A�E���

� 7���"CB��A�FC�/��C�FB��A��������� ������C���B�F9����"��

� 1 �D4�A�"CB ���� �/�C�A�F��B������D��)�"CB �����FCBC�-��)�"CB ����FB��A��������1 ��C&�'������� ����B����*�BCA/BC��B�����CB����� ���B�,

� �D&�����C���C����C�A�AB�B����CB"�

� E�AB��� �C����C���DD���B�A�$�EA��$�B�A������DB"����CDB���*E%'C<$�=��?<$�E%�$����$��E($�F%C$�%8C$�C75,

� C�E����� �����*�BCA/BC��A� ��A���,

� 6��������$�')C'$��C$�B�A�B5�*�BCA/BC��A� ��A���,

� �BD�CB$�C%�$���D B��$�B�A�B�����C�D���C�*�BCA/BC��A� ��A���,

� (���A�E��� D������EC��D��������A�"�B�A�E����D��B��C$���������C�A�F�""�"$�D�D�C��B�A� �C��CDB���� C����"$�B�A�B� ��"����C�����'�� ���7)'

Page 8: Embedded Android Workshop

G�

�����.@������ ��

� 6C�/��C����

� %�������

� 8�����C������ �����0�B��2

� EB�������

� =1E'

� �'�(�=

� 6��9

� E'8.

� � �D�A���B���/�����C������B��������B��!�����B�D����B�����"

Page 9: Embedded Android Workshop

;�

��!B"B!�

#A��$���

%��D

���E���+�&�'B�D(

&�'B�D(

���E���+�

���E���+�

&�'B�D(

���E���+�

���E���+�

���E���+�

&%��D(

&%��D(

&#A��(

Page 10: Embedded Android Workshop

���

������ ������ ��

� 8����"������C�� ����*8��DB�*,�HIHI,

� .�����B�A�/���C�.�:��%7!��DB�������DB���/B��

� %C��������B�A�B ��/���F������A�B��CB�A�D��A�E��� �C�D������A��B���CA�"��

� .7�A����CD�AB��A��C�D�B �0FCB��2

� � ��BC�����B��A$�E�C�

� 6��BE�C� C�A�B��A������/�D�D�C�����A����

Page 11: Embedded Android Workshop

���

���=���C�� �����

� ��C"���6C��B�A�&BCC��%B"����BC��A����"��A������DBC� ����

� �A�����������������DBC� ���������"CB��"�/�F$�7E$�DB�$�����

� �A�����/B��DBA��F��)B�"�C����$��������A�A�F����A��(�F��*�'1,

� 6C�!%B"��D���(�F��B����B���CA��B������"BE������A����J��A�E��� D���

� C��"���/B��A��B������BC�����"�������A����

� ���<�

� )�� �������������/�"$��A�����/B��J��DB��"�K

� )B�"�C�����F�BCA�A��A�A����C� �B���(�F�

� (�F��������C������A�K����BC��A���AC�A�������BC��A������"���C�L���

� C�B���1 ���D�F����B�A����� �B���CD

� ���>���F����

� C���F��"���F��C��"�����C���A������A���D��,

� ���A���8�E�DF�C�

� 1 ���=B�A�������B����B�������A�B���"�/�����AC�A

Page 12: Embedded Android Workshop

���

� ���G����� ������AC�A�������C���B��A

� ���;���5�F�����AC�A����

� ���;���� C�����AC�A���>�!��� �B��

� ���;����� ������AC�A���?�!�)����

� ���;���1�������AC�A����!����!�'��BC

� �������EB�����AC�A�����!�5C���

� �������)�������AC�A�����!�C�"�CFC�BA

� �������FB������AC�A�����!�=������DF�M��BF����� �D4�A

� �����M�EB�����AC�A�����M�.�6�������� �C�

� �����M�8�E����AC�A�<���!�7����C�BD��B�A/���M�D�C"��C�"�CFC�BA�B�A�=������DF

Page 13: Embedded Android Workshop

���

���'�������D

� �>��� �����B��EB����� �C�AB�

� �>���B ��*E����>�����C�� ��N��B ����C�,

� �!�������/��DBC� ���������A���.�

� ���

Page 14: Embedded Android Workshop

�<�

�����B��N�� �B��"I

� &�BA�"�7%�

� C��"��

� ��D���A����C�DB���B���C�C��

� �(E$�7����$�5C����B��$��7$�D�B���DD$�8L7)7�$����

� =B�A����DB���B���C�C��

� E���C��B$��BD���"$�=��$�&C$������'C�����$����

� �BF����DB���B���C�C��

� E���C��B$��BD���"$��C����$�)'&&$���.�$����

� � ��B�� �C ����A�E����

� 8���$�F����6B�������DDB�A�%�B���CD$����

� � ����C���

� ��AC�A�EBC���$��DB4���� ����C�$�L������� �$�6O8�8119�� �$����

Page 15: Embedded Android Workshop

�>�

�����1 ���=B�A�������B���

� 0���� B� "C�� ���� G�� ��������"��B�A�D�F��� ��D B����/����BE�� ��D�� ��"����C� ���B�����CB������EB������D�F���B�A�����C������D�C��B�C���C$�������: ���E�$�B�A�F����C� D�F��� �: �C������ ��"����C� /�� �BE�� A�E��� �A� ��AC�AP$� ���� �C�����D ����$�� ��$�B�A��C���D�F��� �B���CD�2

� .����BC�/�B��1=��A�����C�/�B��F������$���B��$�D�DF�C��A�CE�

� 8���B���C"B�4B����/���F�BCA�D�DF�C�$���B��$����������Q����B��0���B���2

� C��"��N����AC�A���BD�BC��������BA����B���F���A�"��A"��A�E$�B���������B"�B���"

� 1=�����BC"�����B��E��!�BF����

� ��D C��A����

� E�F���1 �CB��C���� C��$���E�F��$�L�AB����$�8���)���D�$����

� =B�A����EB���B���C�C���=��$�E���C��B$�&C$��BD���"$������'C�����$����

� ��D���A����C���D B������(E$�5C����B��$�7����$�8L7)7�$�D�B���DD$��7$����

� ����/BC����D B�����C��"��$����

� ��DD�C�B�4B������D B��������

Page 16: Embedded Android Workshop

�?�

<��&�"B��5CBD�/�C�

� ��A��B�����

� ��A���������

� 6CB�A�"����

� C��"��N���/����AC�A�� �

� ����C�B�E��� ����C��

� 1CB����E��C��"��

Page 17: Embedded Android Workshop

�A�

<������A��������

� %BC���

� 9�C���

� ��AC�A�1 ������C���%C�Q����*�1�%,

� 9�C����

� �����A��BE��B����������B������� �A�E�C����RS�C%&�C�#�C�D���

� C��"���DB��B��A���C���B��B�AC�A�"����C�����C"

� �1�%�

� ����������A��AC� ���E�C��?�D�����

� 1���B���1�%�FCB������B��B�AC�A�"����C�����C"

� EB�B"�A�F��0C� �2�����$�B���E�C�B�����0"�2

� =������DF�*���,���A��C�#�C����B���"����C��"��

� ����/�����B��N�� C����A�A�D�A�C���C�D�����"�F�BC������������)9�B�A� ����"�=������DF����B�����C������A�E���$�����A�"�6O8N��8�������

Page 18: Embedded Android Workshop

�G�

<������A��&������

� 9�C����

� C8.�C���CB��%�F���&������*B���B��C%&,

� �1�%�

� E������� B����&����������*B���B����&,

� =BE�"�C%&��C������C�� B���/B��B�A��"��"�B�

� ����/�C%&�B�A�&C%&� BC����DB����6���T�B�A�)6.�

� ��D��������D ���������6�)��6����B�A�����F�:�

� 0�:��C�B�!2�AC����C������B���B�D:�A�FB"�����������$��������������C%&

� EB��F��A��CBF������BAA�C%&!&C%&���D �������

� 6���6�:

� ���F��!��"�F��!�"�F�

Page 19: Embedded Android Workshop

�;�

<����6CB�A�"�.��

� ��AC�A�(�F���

� L�C��D������������&��:� ��"��

� ��AC�A�&�"��*��8�)�(�1�7�)�/!��� ��B��,�

� �B�����F�����A

� ��AC�A������D��� ��B���

� �B�����F�����A

� ��AC�A���1���B��8BD���

� ���A���C ��C�������0��C���AC�A2

� E��������C������C�#�C��B C�EB�

� ��AC�A���E���B"�"�

� ����/�A��������/�A�F��B�"���C���0��AC�A�� ��B���2

� ��D �B������C��"���))!�����E��E�A���0B C�EB�2

Page 20: Embedded Android Workshop

���

<�<��C��"��N���/����AC�A�� �

� ���������1�%�B ��

� ��AC�A�EBC���

� 3����F�

� EB ��B�A�8BE"B���

� CDB�

� L���

� ���EB

� ���

� (�#�C��

� ���!�))���D �B���

� �"��A�B"C��D����/!�C��"��

� 7�#�C����B�AC�A� BC���C�� �U"��"�����D

Page 21: Embedded Android Workshop

���

<�>������C�B�E��0� ����C��2

� ����� ���������C���BC��B�C�BA�� �F���

� ��AC�A�EBC���

� �DB4���� ����C�

� L������� �

� 6O8�8119�� �

� ���

� 8����"� C����A�"������C�D��BE�"����C��/�

Page 22: Embedded Android Workshop

���

<�?��1CB����E��C��"��

� 5��A���"��������

� %B�������C�"�D����

� ?$��>$<<A-�?$�;�$<A?-�>$;??$A��-�A$<�?$A��-�('�G$��<-�?$;��$��>-�B�A�?$�?�$>��

� �� �C"�����C�"�D����

� ��AC�A�A������������B���1CB����FBEB��FCBC����C�FLE���������B�� C�A����

� ��AC�A�C��������� B����=BCD����B�A�)B�E������BA�

� 7��1���F�C�����$�76E������� B����=BCD�������Q���/�C�����1CB���N��1 ��F)9$���BE�"����� C�Q���� CB���B�����C �B��A�

� 7��EB������$�Q�A"���CA�C����BD�������C�D����������B�A� C�C�BC��C���C�����������C�D����AC�A�����G

Page 23: Embedded Android Workshop

���

>��%�B���CD�B�A�=BCA/BC��C�#�C�D����

� 7�� C�� ���

� ��AC�A�C��������� ����&��:

� ���C���C�������C����&��:$����B��C�����AC�A

� 9��/������BE��F����DBA�����/�C�����

� �(E

� :G?

� E7%�

� �� �C=

� %�����B�����C�����A�E����

� BB���C�$�D�C��/BE���E���$��BC������D�$�����

Page 24: Embedded Android Workshop

�<�

>������D �B����)�������)���D���

� ����/BC���E.��������CD�����1�%

� � ��B����%B��B"�"���D B�F������� �C��0�B �2�����

� E���D�AB���D B�F�����A���A�C�$�����A�C�$�C���CA�"$����

� )�E��� �C��������D B�F�����BAF$�AAD�$�E�����

� =BCA/BC����D B�F����

� )� �B��B�A�CCB ���

� 7� ���)�E���

� )B�B��������E��

� �BD�CB�

� E�D�C��B�A����CB"�

� .�6

� %�C��CDB������D B�F���

� ����C���E�A�����D B�F���

� ����/BC����D B�F���������"

� . AB�BF�������/BC���E.�������A��D���B��D����� AB��

Page 25: Embedded Android Workshop

�>�

>������D B�F�������������

Page 26: Embedded Android Workshop

�?�

?��)�E��� D���������

� (�#�C�D����

� � �A�E�������B�A�C����C���

� � �A�F�""�"

Page 27: Embedded Android Workshop

�A�

?����(�#�C�D����

� � �A�E��� D����B�A�A�F�""�"�

� B�A�/��!�EB��!�&��:�/�C���B���

� F)9

� '�� ���/!��)�� ��"�

� ="����C���DD��A�A��C�B��A�E��*),

� %�B���CD�A�E��� D����

� C8.��C����A�E�������B�

� F��C�A�F�""�C

� ����D�C����������B��C

Page 28: Embedded Android Workshop

�G�

?����� �A�E�������B�A�C����C���

� �)9�

� B�AC�A�M�DB�B"���L)��B�A��)9���D ������

� B �F��A�C�M��C�B��"��B �� B��B"��

� A:�M����E�C��"��QBC�����A�:

� BAF�M�A�F�"�FCA"�

� ���

� 'D��B��C�M�D'E.�FB��A��(E��D��B��C

� .���9LE���C�:G?�����BA

� 8)9��C8.�������B����C��B�E��F�BC��

� )���D���B�����A�E��� �C�B�AC�A���D

Page 29: Embedded Android Workshop

�;�

Page 30: Embedded Android Workshop

���

Page 31: Embedded Android Workshop

���

?����� �A�F�""�"

� BAF

� AAD�

� D�����C����C

� �CB��E�/

� ��"�B�

� '�� ������"CB����*�)�� ��"�,

Page 32: Embedded Android Workshop

���

�A����!E����� �!���'E

�����AC�A������ ��

���5CBD�/�C��7��C�

���8B�E��)�E��� D���

<��1E�CB����C�������C�

>�������D���BC��

?��&��:�9�C���

A��=BCA/BC���� �C�

G��8B�E��.��C�� B��

;���)B�E�

���F87

��������D���CE�C

����B���"������CE���

������E���EB�B"�C

�<�6�A�C

�>��������1�%�� �

Page 33: Embedded Android Workshop

���

�����AC�A������ ��

� ��D ������

� 7������

� ��D ��������������

� EB���������

� %C��������B�A���C�BA�

� (�D���� C���A�C���B���

Page 34: Embedded Android Workshop

�<�

�������D ������

� ��� �R�8���D ������

� � ���B��������D ��������������C�B ��B����

� � � C��������BC��B���DB"�B������BC��A�/����E�C�B��� BC�������A�A

� 'C"���8����C�� ����$�H�$�B�A�HDB�*,

� ��D �������

� ���E���

� ��CE���

� 6C�BA�B���(���E�C�

� ��������%C�EA�C�

Page 35: Embedded Android Workshop

�>�

�����7������

� 7������R�B�����C������D���B"��/!��C�/!��A��"�B��A��BC"��

� &���B� ���D�C ���.�:��"�B�$�F���/!��C�#�C�A��BC"��

� 7�������0 B���BA2����A���7������1FQ���

� 7������5���C��� ����A���EB���������

Page 36: Embedded Android Workshop

�?�

�������D ��������������

� �����D�B���DB"�B������BC��!��� �!����� C��������

� '��C�������D�F��BE��C� C�A�B��A������/�D�D�C�

� �����D��C""�C��&���������B��FB����/����C���EB��

� 'C"���E����DB�B"����D ������&�������

� ��D����D �������BC��D�C����D ��:����DB�B"����B������C�

Page 37: Embedded Android Workshop

�A�

Page 38: Embedded Android Workshop

�G�

��<��EB���������

� 7���CD�������D�BF����B J����D ������

� @E&���CDB�

� ��/B����B���A���AC�AEB������:D�

� ���E���R�VB��E��S�������B��

� ��CE���R�V��CE��S�������B��

� 6C�BA�B���(���E�C�

� ��B���R�VC���E�CS

� )��BD��R������:��C�"���C(���E�C*,

� ��������%C�EA�C�R�V C�EA�CS�������B��

Page 39: Embedded Android Workshop

�;�

��>��%C��������B�A���C�BA�

� %C�������

� )��B�����B����B��FB�������B���B ���D ������BC������A��������DB�� C��������C�BA

� VB��E��SWV��CE��SWVC�� ���SWV C�EA�CS��BE�� C������B��CF��������E�CCA��A��B���

� )��81�� �C��CD�F�����"!���"�� �CB�������DB�� C��������C�BA�

� � B/����C�BA������BA

� %C��������CD�B���!C���BC����B�������DJ��A��C����

� ���C���C��

� E����DB�B"����D ������&�������

� ��C�BA��

� �C�B������"�����C�"��BC�FBEB���C�BA�1FQ���

� ��AC�A��%7� C�EA�����C�BA���� �C���B�����

� &�� �C����C�C����"�B�D���B"����� �/���B���C�BA

� =B�A��C����C� C������"�D���B"��

� =B�A��C��C�BA����C������"�� �B���C�BA�/���B�D���B"�����

Page 40: Embedded Android Workshop

<��

��?��(�D���� C���A�C���B���

� ��AC�A�(%���R�6�A�C�D���B��D

� 8������L�7%��A����������C����C����C�����B�B"�

� 6�A�C���B���/���E����������B���$��������A�B���

� 7����BA��D����A��������C�B������"�7���C�B���)�������&B�"�B"��*7)&,

� 7)&���A����BA����������"���CB���FBEB����C�B���A�������

Page 41: Embedded Android Workshop

<��

���5CBD�/�C��7��C�A�����

� .7

� )B�B����CB"�

� ����C��!%�CD�����

� ����B�A�D����D�C�������

� CCB ���

� ��A��B�A�LA��

� &��B����B�A�EB �

� 6��������

� 85�

Page 42: Embedded Android Workshop

<��

�����.7

� 'E�C����"�FB��A������CBC�������L�/��B�A�L�/CC�� ��*�B�����,

� )���BC�A���@E&��C�A��BD�B������C��"��FBEB

� .7���D �������

� BA"���

� 'E�����B�A��C�

� E����

� )B��"�

� 8����B����

� ���

Page 43: Embedded Android Workshop

<��

�����)B�B����CB"�

� ��BC�A� C���C�����

� %CEB��� CD�E������ BC�EB����

� 7���C�B�����CB"�

� %CEB���AB�B����A�E���D�D�C�

� ':��C�B�����CB"�

� %�F���AB�B������BC�A��:��C�B��A�E���*�),

� �D&���)6

� %CEB���)6

� 8��/�C�����������

� B�F�FB��A����CB"��*('��,

Page 44: Embedded Android Workshop

<<�

���������C��!%�CD�����

� E��������C�������C��A�B�� C��������E����.7)$�C7)

� %�CD����������C���C���C���������

� %�C� C������� �CB����

� %�C�.(7�B�����

� � ��B�����BC���B�AF�:�A

� � ����� �CD������C�#�C�A����0�:�2��B�AF�:

� )���������"CB���B������FB��A����

� ��C���B���

� .��C� C�D ��

� ���� �CD������D����F��A���BC�A���B��B���

Page 45: Embedded Android Workshop

<>�

���8B�E��A�E��� D���

� B�B�����B��B�A��B�����A�

� C����"�B�A����B���"�����8)9

� .��"�����8)9

� 7D ��D����"��������B�E��B �

Page 46: Embedded Android Workshop

<?�

�����B�B�����B��B�A��B�����A�

� .��������C�

� %�C��"��:���"�F�A�������A�������AC�A

� )�E��� �"�� �D4�A��B�E��B �$��� ��B������C�"BD�"

� %C�EA���

� ������B�A�F��A���������"���CB����B�E����A���FCBC����C�D��!�XX

� BB������DF�A��B�E���F�������B �

� ���������BF���*��C/BCA���D B�F��,��B�E���F�

� )���D���B���$��BD ����B�A�����CB��

� '�BF����

� �B���"��B�E����A���C�D�FBEB����"�F87

� 7D ��D����"��������B�E��B ��*��������,

� )����N��B���/��������

� ��D ����CBA���B��&��:!.�:�B ��B���

Page 47: Embedded Android Workshop

<A�

�����C����"�B�A����B���"�����8)9

� B�B�J��������8)9I

� )�E��� D���������

� ��BF����B�E���%7�������D���BA�C�

� )���D���B������7E%1(��8�

� �BD ���

� C����"�����8)9

� ��� �!!A�E��� �C�B�AC�A���D!�A�!�A�!�A�:���D�

� %C�C�#�����

� B�A�/�$�EB���C�&��:

� ��D ������)9

� DB���*C8.J�,�B�A�B/�

� 5�C�B�A�/�$���"/����A��C��"��C

� 8)9������ �

� EB�����C�� C�C�#������BC�����B���A

� )�/���BA�B�A����B���8)9

Page 48: Embedded Android Workshop

<G�

�����.��"�����8)9

��%�B����B�E����A����A�C�V C�Q���S!Q�!���

���C�B���V C�Q���S!Q�!��AC�A�D�����A���CF���B�E����A�����8)9

��1 ���B����C�B���V C�Q���S!Q�!� ��B����D����C�A���CF�"�/�����B�E������C����BC��C�#�C�A�F��B

<�6��A��B�E����A��

� �A�V C�Q���S

� V�A�S!�A��F��A

>���D ���B �/����)9��8B�E����A��/���F����BC�A��F����B ������

Page 49: Embedded Android Workshop

<;�

��<��7D ��D����"��������B�E��B �

� ��AC�A�����B�A��

� 8B�E�����������DB�B"�D���

� �����C����/���������:�����A�A�B��A�)B�E��LE

� �B������F87�����B������FBEB���������

� &D��A��%7�

� ���E������������DB�B"�D���

� 7� ����E�����B�A������C�

� B�A�/�DB�B"�D���

� )C����B���������B�����

� EB�����C�����C�B��E������B���A��0B�AC�A�B �8B�E����E��2

Page 50: Embedded Android Workshop

>��

<����1E�CB����C�������C����'&

Page 51: Embedded Android Workshop

>��

<����1E�CB����C�������C������AC�A

Page 52: Embedded Android Workshop

>��

>�������D���BC��

� 6�����BA�C

� 9�C���

� 7��

� T�"���

� �����D���CE�C

� ���E���EB�B"�C

� &B�����C�*=�D�,

Page 53: Embedded Android Workshop

>��

>����6�����BA�C

� B�� !F���BF��!F�����BA�C

� �����D�F�����BA�C���C���AC�A

� .�6�FB��A

� 7D ��D���������0�B��F���2� C������

� ����C����A�EB�0�B��F���2����������������

� B�� !F���BF��!C���E�C�

� .7�FB��A�C���E�C��F���� C�"CBD

� �������A���C��"��DB"��������#������B��F���

� .��B����DB���B���C�C�� �����EBCB��

Page 54: Embedded Android Workshop

><�

� 5�B����B�����

0x000003860000-0x000003900000 : "misc"0x000003900000-0x000003e00000 : "recovery"0x000003e00000-0x000004300000 : "boot"0x000004300000-0x00000c300000 : "system"0x00000c300000-0x0000183c0000 : "userdata"0x0000183c0000-0x00001dd20000 : "cache"0x00001dd20000-0x00001df20000 : "kpanic"0x00001df20000-0x00001df60000 : "dinfo"0x00001df60000-0x00001dfc0000 : "setupdata"0x00001dfc0000-0x00001e040000 : "splash1"0x000000300000-0x000001680000 : "modem"

5C�D����C�&#�A�'

9�C���

!�����D!AB�B!�B���

Page 55: Embedded Android Workshop

>>�

>����9�C���

� 'BC�����BC�� ���A����E�C���BCA/BC��A� ��A���

� 7��B�4�����EC��D������C�����C����"��������A�

� F�D ���������BC�������C���A� ��A������BC�Y��C���*,���������

� 7��B�4����"����E�����C������F�����D�

� E������C������������D

� ��BC���������� C�����

Page 56: Embedded Android Workshop

>?�

>������AC�A�7��

� 1 ��$� BC���$�B�A�C����!���C��

� �C�B���D���� �����B�A�D�������������D�

� ����� ���������D� �CD�����

� ����11E�BAQ���D����� C� �C���

� ��BC��AB�D����

� BAFA

� ��CE��DB�B"�C�*F�A�C������:��DB�B"�C,

� E��A

� ���A

� C�A

� B Y C�������@4�"����*T�"���,

� D�AB��CE�C

� ���

Page 57: Embedded Android Workshop

>A�

>�<��T�"���$�����

� 7���

� B Y C�������@4�"����*T�"���,

� �CBD�/�C��!FB��!�DA�!B Y C�����!B YDB��� �

� C���D����BC�*0��D�B�AC�A����C�B�����T�"���2$����

� �CBD�/�C��!FB��!��C�!Q�!��AC�A(���D��� �

� ��BC�LE*,

� �B���T�"���N��DB�*,

� �CBD�/�C��!FB��!��C�!QBEB!��D!B�AC�A!���C�B�!��!T�"���7���QBEB�

� ���

Page 58: Embedded Android Workshop

>G�

� C���BA��B����*,

� ��BC������D��CE�C*,

� ����DB"�����

� �B��������D��CE�CN��C��*,

� �CBD�/�C��!FB��!��CE���!QBEB!��D!B�AC�A!��CE�C!�����D��CE�C�QBEB�

� ��BC���''������D���CE���!DB�B"�C�

� ��BC�����E��EB�B"�C�

� ���A�7���������'C1(3Y=1E'

� &B�����C��������

Page 59: Embedded Android Workshop

>;�

?��&��:�9�C���

Page 60: Embedded Android Workshop

?��

?������AC�A�D�

� BB�������

� ��/D�D��B�A��C

� 6�A�C

� B��D�D�M������D������BC�A�E�D�C�

� (�E��������

� &�""�C

� ���

Page 61: Embedded Android Workshop

?��

A��=BCA/BC���� �C�

C%�

)� �B�

&"���

9��F�BCA

6������

6B���C�

8����B����

��������

��A�

�BD�CB

%�/�C�EB�B"�D���

�����C�

������C�D���C

EB"�����5��A

1C���B���

C�C���� �

&"��

%C����C�

��D �CB��C�

%C�:D��

(BA��&B��C�7���C�B��

6�������� 6���T���C��"��)�6.��7%��*���BE�A�C%&�����BD�B���������D�,

EB���B���C�C� C�EA�A��F" ����

B� / BY�� ��B��

��A��CBD�F����C�ACE�C�*!A�E!�F�,

9��DB ��B�A�9��F�BCA� ��A�� ����E����*!A�E!�E����,

EB���B���C�C� C�EA�A��F�"������

6B���"��

EB���B���C�C� C�EA�A��FB�A�����*����A������&�����A�C��B�������B����B���B�������CB��A������C� �C��"�"�A�,

EB���B���C�C� C�EA�A��F�BD�CB����*����A�����L<&����C����ACE�C���A�C��B�������B�������CB��A��� �C��"�"�A�,

0BB�������2���C���� B���

EB���B���C�C� C�EA�A��F�����C����

EB���B���C�C� C�EA�A��FC��V��D B���BD�S�V(7&�E�C���S���

Page 62: Embedded Android Workshop

?��

G��8B�E��.��C�� B��

� EB���

� !AB�B RS�.��C�AB�B

� !�����D RS������D���D ������

� ���������A�

� !A�E

� ! C��

� !���

� !�F�

� !D��

� !�B���

� '���

Page 63: Embedded Android Workshop

?��

� &F��

6���$��D&��$���&$�1 ��C&Z'�$�

8���%��:���D��A�%��C�BA���� �C�$�������L�7%�

� ����F�:

� )B�D����

��CE��DB�B"�C$�E��A$�C�A$����A$�BAFA$����

Page 64: Embedded Android Workshop

?<�

;��)B�E�

� ����FBEB�R�

FBEB��B�"�B"��X�FLE�X�F)9��F�

� ��AC�A�FBEB�R

FBEB��B�"�B"��X�)B�E��X�� B����=BCD���

� �BC"���

� ���/��%.

� (��B�E������/�(�E

� 1��/�������/B �� B��

� 6B���C�� �/�C�A

� 8�/��B��F7�

Page 65: Embedded Android Workshop

?>�

;����)B�E�N���A�:�����

� FLE�D����������0���B��2�����

� )B�E��D����������0�A�:2�����

� �A�:�����R����B�������� ���� C������A�F��0A:2������

� .���D C����A��A�:�R���>�[�.���D C����A��QBC

Page 66: Embedded Android Workshop

??�

����F87�M�FBEB�8B�E��7���C�B��

� �B���"B�����C�����C��B�"�B"��$������B���$��XX

� '#�EB���������8'�N�� �E���

� .�B"�������A��B�A��B����B�E����A���C�D��

� ������R�8)9������BD ��������A�A

� �����������AB�CDEFD����D������������������������E������C�����BEB�BF���%)5

Page 67: Embedded Android Workshop

?A�

���������D���CE�C

'��C� ����CE�� )�E���%���� ��A����CE��

%�/�C�EB�B"�C ��B����6BC =�BA����1F��CE�C

���E���EB�B"�C �� F�BCA���CE�� )����1F��CE�C

���� �����(�"��C� 7� ���E����A���CE�� .7�E�A��EB�B"�C���CE��

%B��B"��EB�B"�C 6B��� ���CE��

��������EB�B"�C

��������EB�B"�C �������E�����CE�� (���"�������CE��

�����D���������%C�EA�C� ��C��������CE�� ���������D�B�E��

6B���C����CE�� ������F����EB�B"�C

&"������CE�� E�������CE�� �)6������"��1F��CE�C

LFCB��C���CE�� 8����B����EB�B"�C

��BCD�EB�B"�C )�E������CB"��E����C

&��B����EB�B"�C

�����C���CE�� ��BC�����CE��

B�A�/�EB�B"�C

BB�� B �C���CE��

8����B����CE��

8��/�C�EB�B"�D������CE�� � BA"�����CE��

)����B�����CE��

7���BB���A�"

)C� 6�:���CE��

6�����������CE��

Page 68: Embedded Android Workshop

?G�

�����B���"���������D���CE���

� .���"�������D��CE��

� ':��8����B���EB�B"�C�1FQ����C���C�����

��C�"����R������:��81�757���718Y�'(L7�'-

8����B���EB�B"�C�D8����B���EB�B"�C�R�*8����B���EB�B"�C,�\�"�������D��CE��*��,-

� %C� BC�����C��������

� �B�����������FQ����

D8����B���EB�B"�C������*='&&1Y7)$������B���,-

Page 69: Embedded Android Workshop

?;�

�������E��EB�B"�C

� ��BC����/����E���$���CE���

� 5�������������%C�EA�C�

� 7������FC�BA�B���"

� 11E�BAQ��DB����B���

� � ��B����8���(�� ��A�"

� %�CD�����

� �B���DB�B"�D���

� &��������DB�B"�D���

Page 70: Embedded Android Workshop

A��

� ':����BC��"���/�B ��C�D�&B�����C�

� ������*&B�����C,� ��BC����E��*���E���QBEB,� ������D�� ���E��EB�B"�C��CE��� ��BC�LBT�"���*%C������QBEB,� ��E� ���� T�"���

Page 71: Embedded Android Workshop

A��

�<��6�A�C

� �1(6�!�1E�����7%�

� )B�B��������C��"��0 BC����2���0�CB��B�����2

� 9�C������ �C��A�D���B��D

� !A�E!F�A�C

� ������! C��!F�A�C![

� B�AC�A�[��%7���������A���������D���CE�C���C��"��F�A�C�

Page 72: Embedded Android Workshop

A��

Page 73: Embedded Android Workshop

A��

�>���������1�%�� �

! B��B"��!B � ! B��B"��! C�EA�C�

&B�����C�

E���

6C�/��C

�B����B��C

�B���ABC %C�E���

�BD�CB

�����"�

����B���

'DB�

CB���C�

! B��B"��!� ��D����A�

����������A�����"� � ��B���%C�EA�C &B��7E'

��BCD����� ED� �B���ABC%C�EA�C 1 ��B��

6�������� ����B���%C�EA�C %���7E'

%B��B"�7���B���C )�/���BA%C�EA�C

%C�� � )CD%C�EA�C

C��"������B���%C�EA�C

D�����BC��6�: E�AB%C�EA�C

��C�7���B���C ���� ����%C�EA�C

����A(���CA�C .��C)����BC�%C�EA�C

)�������� � ����(���CA�C

���

L���)B��C

=�E&L�/�C

Page 74: Embedded Android Workshop

A<�

���AB��*����)A����+A,��!

� ������B�A����B���

� �������

� 6��A�"

� 6��A������D

� �AA�"���/�B ��B����

� 7DB"��

� .��"�BAF

Page 75: Embedded Android Workshop

A>�

���������B�A����B���

� &��B����

� ��� �!!B�AC�A�"����C�����C"!

� C���0C� �2�

K���C����� ��!!A������"��"�����D!A�!"��"�����C��!"��C� �!C� ��S�]!F�!C� �

K���D�A�BX:�]!F�!C� �

� 5����������1�%�

� EB�����C������������B��B""�A�C���B��

� C�"�CFC�BA�

K�C� ����������� ��!!B�AC�A�"��"�����C�����D! �B���CD!DB�������F�B�AC�A�����AYC�

K�C� ������

Page 76: Embedded Android Workshop

A?�

����������

F��� ���FCBC��C� �B��D���

F��A 6��A������D

��D B�F�������������

A�E��� D��� )�E��� D���������

A�E�� )�E���� ����������B�A���D ������

�:��C�B� �� ������:��C�B�� C�Q��������A�F���1�%

�CBD�/�C��

�BCA/BC�

� B����=BCD���

����8)9

B��B"�� ��������AC�A�B �$� C�EA�C�$�����

�����)9

�����D

F���BF�� (���C�����F�����BA�C

���

AB�E� )B�E��LE

�����D���CE���$�B�AC�A�[$���AC�A�C��B��A��DA�$�����

=BCA/BC���� �C���F�

�F��C�

�A�

C�F��� %C�F����F�BC��

�A� ������������/�C�A���B��BC��������C����������DF�AA�A����:� �B���CD�B��������BC�������AC�A�

Page 77: Embedded Android Workshop

AA�

���6��A�"

� (�#�C���?<�F��.F���������<

� %B��B"���C�#�C�A�

K���A��B ��"��� ���B���F��A�������B�� �F�?�A�E� \

S�B����F�� �F��4��F���� ���:�" �C��"����C�� \

S�"XX� �F�?�A�E��G?� �F4�A�E� �F:���A�E� \

S��F��A�XX?� �F�����C���>� �F�����C���>�A�E� \

S�"XX�D����F� %���F����:�B���/���DF���������

K���A����� ��� !��C!�F��!�F��A�XX����?� !��C!�F��!�F��A�XX���

K���A����� ��� !��C!�F��!�F4������ !��C!�F��!�F4���

Page 78: Embedded Android Workshop

AG�

� ����� �F��A���EC��D����

K�-�F��A!��E���� ���

K������

� &B�����F��A�B�A�"��/B�������"��N���������"BD��

K�DB����Q�

� ��������"�����������A����������C���C����B��FC�B������

� F�����B������D��B��C�/�����N��A����

K��D��B��C�O

Page 79: Embedded Android Workshop

A;�

� ��D�������C����

� ����F��A!��E���� ������C���DDB�A�

� )��������B����*��D ��C��B���,�

K��: �C��.�'Y����='R�

� .���0�����2��C�D��1�%�C�������������E�EBC�

� 3��N������A���B����������D��FB����B��C�B�A�/B������C��B������D��B��C��C�D��1�%�C����

K���F��A!��E���� ���

K������

K��D��B��C

Page 80: Embedded Android Workshop

G��

<��6��A������D� 8���(���C�E�� 0E�A����2�F��A� C�A�B��A������AC�A�D�

Page 81: Embedded Android Workshop

G��

>���AA�"���/�B ��B����

� �AA�B ��B������^B�� _! B��B"��!B �

� �B������'�� �������C�B�����B��E�C���

� �� ��'�� ��� C�Q������� B��B"��!B �

� �AA�B��B C� CB�����AC�A�D��������� C�Q���

� �AA� C�Q�������%(1).��Y%��9�C'����^B�� _!F��A!�BC"��! C�A���!��C��D�

Page 82: Embedded Android Workshop

G��

?��7DB"��

� ������� ���B�A�F��A���^B�� _!���!

� 7DB"���B��^B�� _!���!�BC"��! C�A���!"���C�!�

� CBDA���D"

� �����D�D"

� ���CAB�B�#�D��D"

� 9�C��������

� C�F���!B�AC�A�BCD!��C���!��C����#�D�

� 'D��B��C��E�CCA���

� ���C���

� ���CA

Page 83: Embedded Android Workshop

G��

A��.��"�BAF

� �B�������������C��!���C�B���/!�C����"��1�%$�����A�"��D��B��C�

� ������

K�BAF������

+

� )�D �"�������"�

K�BAF���"�B�

� �� ��"��������!�C�D��BC"���

K�BAF� ��������!AB�B!���B�

K�BAF� ����! C��!����"�"4

=���

�BC"��

Page 84: Embedded Android Workshop

G<�

����'�)�'��!BA�

� C��"���

� ��� �!!B�AC�A�"����C�����C"!

� LB���B�

� ��� �!!///���C�����C"

� '���C�/B���������NC����C�/�A�

� ��AC�A���C������B���C�

� 8��C������������"��

� ����A!�����EB���B���C����B��������B�AC�A�D�

Page 85: Embedded Android Workshop

G>�

.�!B"�����AB��/E�0)����

� 5�������D��B����

� 6���

� ����F�:

� 7��

� 8B�E��AB�D���

� %�/�C������

Page 86: Embedded Android Workshop

G?�

���5�������D��B����

� !B��� RS�����C���CC�� �D����� ����*)���D���B���!�"C�� ���:�,� !�B��� RS��B������B��� BC����� !A RS���D�������!���!��C���!A�F�"� !AB�B RS���AC�AN��0!AB�B2���������D� !A�E RS�)�E�����A��� !��� RS���D�������!�����D!���� !D�� RS���D �CBC��D����� ���� ! C�� RS� C����� !C��� RS������A� !�F� RS��E���A�B�A�BAFA� !�A�BCA RS��)��BCA�D���� ���� !��� RS������� !�����D RS���AC�AN��0!�����D2���������D� !E��A�C RS���D�������!�����D!E��A�C

Page 87: Embedded Android Workshop

GA�

�����!�����D

� !B RS�������B �����B���A

� !F� RS�8B�E��F�BC���B�A�AB�D���

� !��� RS�����"�CB��������

� !����� RS���5�

� !�CBD�/�C� RS���AC�A��CBD�/�C���QBC�����

� !�F RS�8B�E���FCBC��

� !��C RS�E�B��C��0!��C2

� !:F� RS�1 ���B�!':�CB�F�BC��

Page 88: Embedded Android Workshop

GG�

�����!AB�B

� !B�C RS��8(��CB���� !B RS�� ����B������B���� !B � CEB�� RS�%C������A�B �� !FB��� RS�5�C�6B��� �EB�B"�C� !AB�E���B��� RS�)B�E��)'@��B���� !AB�B RS�� �AB�B� !A��� B�� RS�&B��� B������ ���*��������X���C�BA�,���C�0A�D ��B��2� !���B� RS�������/C�BF���� B��� !D�� RS�E����AB�B�*/�$�E �$�F��������$����,� ! C� �C�� RS�%�C������������D� C� �C����*�����C�$��B�"�$����,� !����C� RS�����C����AC�A�AB�B�BEB�BF��� !�����D RS������D�AB�B

Page 89: Embedded Android Workshop

G;�

���6���

� 7��B�� �

� !F���

� 7����������D�

� !�����D!�F

� %C�EA���

� �F�

� �FD

� �FA�

� �F��AXX

� �F��C�BAYAF

� ����C

Page 90: Embedded Android Workshop

;��

�������F�:

� 7��B�� �

� !�����D!��C�!����F�:

� 7����������D�

� !�����D!F�!����F�:

� %C�EA��

B�BCD�AB���"���E������D�A����DE� �/�CA�C���������A�� ��DA��� �AA�"�� C� ��������D�A��B�AC�BA� C����E�CD����A�E������BC���D������B����A����������������B�� ��CDAC��������������� �� �D����D�A�A��A�����D�AC���/��YD�A���C�CDD�A�������������ED��B�����/��AD��"������"����C�BA����C��B���F���� C� ���C���/B��� C� ���D ��:������� ���"�D�����������C�F����C��������� �/ �

Page 91: Embedded Android Workshop

;��

<��7��

� 7��B�� �

� !�����D!��C�!��

� 7����������D�

� !��

� (��������

� !���C�

� !���^F�BCA_�C�

� !��E���A�C�

� !��E���A�^F�BCA_�C�

� !�����D!���!���^F�BCA_���

Page 92: Embedded Android Workshop

;��

>��8B�E��AB�D���

� ��CE��DB�B"�C

� E��A

� C�A

� ���A

� BAFA

� ���B��A

Page 93: Embedded Android Workshop

;��

>������CE��DB�B"�C

� 7��B�� �

� !�CBD�/�C��!FB��!�DA�!��CE��DB�B"�C!

� 7����������D�

� !�����D!F�!

� %C�EA���

� �����:��DB�B"�D������C�F�A�C

� ��CE����A�:���C����C�������D

Page 94: Embedded Android Workshop

;<�

>����E��A

� 7��B�� �

� !�����D!E��A!

� 7����������D�

� !�����D!F�!

� %C�EA���

� L���D��D�����C

� �����D����

� �������CDB��D�����A�A�E���

Page 95: Embedded Android Workshop

;>�

>����C�A

� 7��B�� �

� !�BCA/BC�!C�!D����C�!

� 7����������D�

� !�����D!F�!

� %C�EA���

� 0(BA��7���C�B���&B��C2���� ������BCA/BC�

Page 96: Embedded Android Workshop

;?�

>�<�����A

� 7��B�� �

� !�����D!���A!

� 7����������D�

� !�����D!F�!

� %C�EA���

� EB�B"�D�������B� �����������/�C��"

� 7���C�B����/���8��/�C��EB�B"�D������CE��

Page 97: Embedded Android Workshop

;A�

>�>��BAFA

� 7��B�� �

� !�����D!��C�!BAF!

� 7����������D�

� !�F�

� %C�EA���

� 7���C�B����/��������0BAF2���DDB�A

� (�D����A�F�""�"��B BF����

� ���������������

� %B��B"�����B��!�����B��

� ��������0BAF���� 2�����������C������A��B�

Page 98: Embedded Android Workshop

;G�

>�?�����B��A

� 7��B�� �

� !�CBD�/�C��!FB��!�DA�!���B��A

� 7����������D�

� !�����D!F�!

� %C�EA���

� %B��B"�����B��!�����B��

� �B�����������B�A�E�C��B����

� 7���C�B����/���%B��B"��EB�B"�C���CE��

Page 99: Embedded Android Workshop

;;�

?��%�/�C������

� A�D ��B��

� A�D ���

� ��CE��

� ��"�B�

Page 100: Embedded Android Workshop

����

)�E!���)�"�

� ��CE����C���F�������D���CE�C

� 1F��CE�"����������D���CE�C

� �B���"���������D���CE���

� 7��A��B���/������D���CE���

� �C�B��"����C��/�������D���CE��

Page 101: Embedded Android Workshop

����

�����CE����C���F�����������D���CE�C

'��C� ����CE�� )�E���%���� ��A����CE��

%�/�C�EB�B"�C ��B����6BC =�BA����1F��CE�C

���E���EB�B"�C �� F�BCA���CE�� )����1F��CE�C

���� �����(�"��C� 7� ���E����A���CE�� .7�E�A��EB�B"�C���CE��

%B��B"��EB�B"�C 6B��� ���CE��

��������EB�B"�C

��������EB�B"�C �������E�����CE�� (���"�������CE��

�����D���������%C�EA�C� ��C��������CE�� ���������D�B�E��

6B���C����CE�� ������F����EB�B"�C

&"������CE�� E�������CE�� �)6������"��1F��CE�C

LFCB��C���CE�� 8����B����EB�B"�C

��BCD�EB�B"�C )�E������CB"��E����C

&��B����EB�B"�C

�����C���CE�� ��BC�����CE��

B�A�/�EB�B"�C

BB�� B �C���CE��

8����B����CE��

8��/�C�EB�B"�D������CE�� � BA"�����CE��

)����B�����CE��

7���BB���A�"

)C� 6�:���CE��

6�����������CE��

Page 102: Embedded Android Workshop

����

�������D����B��

� �CBD�/�C��!FB��!��CE���!QBEB!��D!B�AC�A!��CE�C�

� ��>�E

� ]��������

� G>�����

� ���E���DB�B"�C�

� ;��9

� ��X�����

� �������

Page 103: Embedded Android Workshop

����

���1F��CE�"����������D���CE�C

� &�"�B�

� A�D ���

Page 104: Embedded Android Workshop

��<�

�������"�B�

� 5�A����������D���CE�CN��%7)

K�BAF������� ��Z�"C� ������DY��CE�C

�����D����?���������������?���><�G����������B�A��A�G��������DY��CE�C

� &������C������� ���

K�BAF���"�B��Z�"C� �0?�,2

���)!%�/�CEB�B"�C��CE��*���?�,��F�����D ����A7!���� ����(�"��C�*���?�,���������CE����B��������D����AC�A���AC�A�����?���.E������������� ���7!���� ����(�"��C�*���?�,�������)B�B�������������B��R���)B�B�������E��%���F��R�B����C�B���R��������C�B��8BD�R��������/�C��� �R�7!��BC��EB�B"�C��CE��*���?�,��6��A�"����������BC��BF���B��E���7!B���CE��*���?�,��B���CE����C��"�������8�D����/�A�������/��� �C������������C��7!���E��EB�B"�C*���?�,������"���B�"�A��`���B��R����D�R���!�?�����R��Y.�������R������R�!�!���BER�!�����7!���� ����(�"��C�*���?�,�������E���B"�BB��"��B�"�A���B���7!���� ����(�"��C�*���?�,��������B��5�C/BCA�"��B�"�A���B���7!���� ����(�"��C�*���?�,�������)B�B�������������B��R���)B�B�������E��%���F��R�C���C�B���R�D&���7!���� ����(�"��C�*���?�,�������)B�B�������������B��R���)B�B�������E��%���F��R�C���C�B���R�D&���)!�����C�"*���?�,��EB���C7��B���B��� C�����E���B"��/�B�R�7!���E��EB�B"�C*���?�,����BC�� C���B�AC�A� C������D�AB���C�FC�BA�B�����D�B�AC�A� C�EA�C��A�/���BA�!�)�/���BA(���E�C�� AR�����AR������"A�R`���>$�����$�����a7!(���E�C������D*���?�,��8��C���E�C����"����B!B�A�/EB�B"�C*���?�,��� ��C��4���D������: C�A����

Page 105: Embedded Android Workshop

��>�

�����A�D �����CC������C����"���CE��������C�B��5��"�C��B�����F�����B��������B��E����B�BCD��B /A"����B�A���FB��� �����/���/�A�/�������������������������������������������������������������������������������).E%�15��'(L7�'���C�B��5��"�C�X�&B��C��:�;?F;�������4R���������$� ��R*����$����,$��4�R*�<G�$�G��,$����A�6���A�"R�$����A�)���C�"R�$��EB�AB������_�������BD�R��D�B�AC�A��B�����C!��D�B�AC�A��B�����C��&B�����C�����������R�:�;��<G$�A�����R?������^���BAR��$�BEB�BF��R��$�#����AR���_�C�B����EB��R��������$��.��R��$�A�����R?$���B���R���������CDB�R��$�^<G�:G���<G�_�^<G�:G���<G�_$��C��4�&���R�:�$�A#�#��D�R>�A>?������

Page 106: Embedded Android Workshop

��?�

����B���"���������D���CE���

� .���"�������D��CE��

� ':��8����B���EB�B"�C�1FQ����C���C�����

��C�"����R������:��81�757���718Y�'(L7�'-

8����B���EB�B"�C�D8����B���EB�B"�C�R�*8����B���EB�B"�C,�\�"�������D��CE��*��,-

� %C� BC�����C��������

� �B�����������FQ����

D8����B���EB�B"�C������*='&&1Y7)$������B���,-

Page 107: Embedded Android Workshop

��A�

<��7��A��B���/������D���CE���

� C��������1�%�����C� �$�����

� �C����

� 7D �C������'�� ���B�A�����B ���D����A�

� .���C�E�C�����"���C�"�������

� 7DB":

� (B���B��

� &B��:

� �������

� ���

� 6�� B����$�������N��A���D����A�B��/��C�����

Page 108: Embedded Android Workshop

��G�

<�������E��EB�B"�C

� ��BC����/����E���$���CE���

� 5�������������%C�EA�C�

� 7������FC�BA�B���"

� 11E�BAQ��DB����B���

� � ��B����8���(�� ��A�"

� %�CD�����

� �B���DB�B"�D���

� &��������DB�B"�D���

Page 109: Embedded Android Workshop

��;�

� ':����BC��"���/�B ��C�D�&B�����C�

� ������*&B�����C,� ��BC����E��*���E���QBEB,� ������D�� ���E��EB�B"�C��CE��� ��BC�LBT�"���*%C������QBEB,� ��E� ���� T�"���

Page 110: Embedded Android Workshop

����

<����%B��B"��EB�B"�C

� �������

� <>��9

� 7���B��B����!�C�D�EB�

� %�CD�����

� 7������C���������*B����7�����(����E�C�QBEB,

� �B���A�F�����E���EB�B"�C

Page 111: Embedded Android Workshop

����

<����B�A�/�EB�B"�C

� EB����C�BA

� B�A�/�DB� ��B���

� BB�� B �C��B�A��"

� 1C���B���

� 5����

� &B��C�"

� 7� ����E����DB�B"�D���

Page 112: Embedded Android Workshop

����

<�<��8����B����EB�B"�C

� ��B���

� 8����B����

� ����A� �B�FB���*����8����B���%�B��C�QBEB,

Page 113: Embedded Android Workshop

����

<�>��%�/�C�EB�B"�C

� BB�������

� ����

� 6C"������

� &���

Page 114: Embedded Android Workshop

��<�

<�?��8��/�C��EB�B"�D������CE��

� �B�������0���A2�!�����D!���A

� 7���C�B�������"�CB���

� �����C�"

� )8�

Page 115: Embedded Android Workshop

��>�

<�A��E�������CE��

� E�����!�.�D����

� 5�CDB�

� .�6�DB������CB"�

� 166

Page 116: Embedded Android Workshop

��?�

<�G��&��B����EB�B"�C

� EB�B"�����B���� C�EA�C�

� "��6���%C�EA�C*,

� %C�:D���B��C��

� &B������/�����B���

Page 117: Embedded Android Workshop

��A�

<�;����B����6BC�EB�B"�C

� ': B�A�!�����B ��

� 7����E�F���

� (�E�B���B��FB���

� �B��FB������C������B����DB�B"�C

Page 118: Embedded Android Workshop

��G�

<�����6B��� �EB�B"�C

� '�BF���!�A�BF��

� �CB�� �C��DB�B"�D���

� FB��� 8�/*,

� ���

Page 119: Embedded Android Workshop

��;�

>���C�B��"����C��/�������D���CE��

� �AA����C���A�������CBD�/�C��!FB��!��CE���!QBEB!��D!B�AC�A!��CE�C!

� =BE�����������D��CE�C�QBEB���XC�"�����C���CE��

� )������BCA/BC���%7���C�B �

� ': ������C��"��

� �CBD�/�C��!FB��!��C�!QBEB!B�AC�A!��!^��CE�C_�BA�

� �B�������B�E��0ACE�C2���A����C��"��F87

� 7D ��D�����C������������B C� CB���ACE�C

� �C�B���B��B ���B���B���������CE��

� EB�����A�����C�B�����/��)9����

Page 120: Embedded Android Workshop

����

>����1 �C�����CE���QBEBpackage com.android.server;

import android.content.Context;import android.os.Handler;import android.os.IOpersysService;import android.os.Looper;import android.os.Message;import android.os.Process;import android.util.Log;

public class OpersysService extends IOpersysService.Stub { private static final String TAG = "OpersysService"; private OpersysWorkerThread mWorker; private OpersysWorkerHandler mHandler; private Context mContext;

public OpersysService(Context context) {super();mContext = context;mWorker = new OpersysWorkerThread("OpersysServiceWorker");mWorker.start();Log.i(TAG, "Spawned worker thread");

}

public void setValue(int val) {Log.i(TAG, "setValue " + val);Message msg = Message.obtain();msg.what = OpersysWorkerHandler.MESSAGE_SET;msg.arg1 = val;mHandler.sendMessage(msg);

}

Page 121: Embedded Android Workshop

����

private class OpersysWorkerThread extends Thread{public OpersysWorkerThread(String name) { super(name);}

public void run() { Looper.prepare(); mHandler = new OpersysWorkerHandler(); Looper.loop();

} }

private class OpersysWorkerHandler extends Handler {private static final int MESSAGE_SET = 0;

@Overridepublic void handleMessage(Message msg) { try {

if (msg.what == MESSAGE_SET) { Log.i(TAG, "set message received: " + msg.arg1);

} } catch (Exception e) {

// Log, don't crash!Log.e(TAG, "Exception in OpersysWorkerHandler.handleMessage:", e);

}}

}}

Page 122: Embedded Android Workshop

����

>����71 �C�����CE���BA�

package android.os;interface IOpersysService {/*** {@hide}*/void setValue(int val);}

Page 123: Embedded Android Workshop

����

>�����CBD�/�C��!FB��!��AC�A�D�

�������������C�!QBEB!B�AC�A!��!7%�/�CEB�B"�C�BA��\����������C�!QBEB!B�AC�A!��!71 �C�����CE���BA��\���� ��C�!QBEB!B�AC�A!��!7(�D����B��FB���BA��\���

Page 124: Embedded Android Workshop

��<�

>�<�������D��CE�C�QBEB

������������ try { Slog.i(TAG, "Opersys Service"); ServiceManager.addService(“opersys”, new OpersysService(context)); } catch (Throwable e) { Slog.e(TAG, "Failure starting OpersysService Service", e); }...

�����A��E����B����F�������:��1%'(�3�Y�'(L7�'

Page 125: Embedded Android Workshop

��>�

>�>��=������CE�C�QBEBpackage com.opersys.helloserver;

import android.app.Activity;import android.os.Bundle;import android.os.ServiceManager;import android.os.IOpersysService;import android.util.Log;

public class HelloServer extends Activity { private static final String DTAG = "HelloServer";

/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); IOpersysService om = IOpersysService.Stub.asInterface(ServiceManager.getService("opersys")); try {

Log.d(DTAG, "Going to call service"); om.setValue(20); Log.d(DTAG, "Service called succesfully");

} catch (Exception e) {

Log.d(DTAG, "FAILED to call service"); e.printStackTrace();

} }}

Page 126: Embedded Android Workshop

��?�

#��1�����E!��!BA������

!�CBD�/�C��!FB��!��CE���!QBEB!���

!�CBD�/�C��!FB��!��CE���!Q�!

!�BCA/BC�!�F�BCA/BC�!

!A�E��!^E�8.5�_!^)'L7�'_

!�A�!�D��B��C!

9�C�����C�D�A���

!�CBD�/�C��!FB��!��C�!���

�1�%� C�EA�A��&

EB����� C�EA�AEB�����������

EB����� C�EA�A�C!�������

Page 127: Embedded Android Workshop

��A�

� ^B�� _!�BCA/BC�!�F�BCA/BC�!����A�!�BCA/BC�

� " ���

� �"�����

� �����C���

� ^B�� _!�BCA/BC�!C�!����A�!���� ����!

� C���

� ':BD ������^B�� _!A�E��!�BD���"!�C�� �!

� �FB�A�

� �F�BD�CB

� �F�"��

� �F�����C�

� .��"�F87�����B�������������

Page 128: Embedded Android Workshop

��G�

����B������F87public class HelloJni extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

/* Create a TextView and set its content. * the text is retrieved by calling a native * function. */ TextView tv = new TextView(this); tv.setText( stringFromJNI() + " " + pid() ); setContentView(tv); }

/* A native method that is implemented by the * 'hello-jni' native library, which is packaged * with this application. */ public native String stringFromJNI();... /* this is used to load the 'hello-jni' library on application * startup. The library has already been unpacked into * /data/data/com.example.HelloJni/lib/libhello-jni.so at * installation time by the package manager. */ static { System.loadLibrary("hello-jni"); }}

Page 129: Embedded Android Workshop

��;�

���F87������������

jstringJava_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){ return (*env)->NewStringUTF(env, "Hello from JNI !");}

Page 130: Embedded Android Workshop

����

���AB��2���1AD

� &��B����B�A���D ������

� B�AC�A�[

� �����D4B���

Page 131: Embedded Android Workshop

����

���&��B����B�A���D ������� ^B�� _!�CBD�/�C��!FB��

� !�DA� RS��B�E���DA��B�A�AB�D���� !��C� RS�B�AC�A�[�B�A���D�B�AC�A�[� !AB�B RS�5�����B�A�����A�� !"CB ��� RS��)�O�(��A�C��C �� !����A� RS�0�2�����A��� !������C� RS�����C����������C�� !�F� RS�0�2��FCBC��� !���B��� RS�&��B���� C�EA�C� !D�AB RS���B"��C"��$���A���$������ !�B�E� RS�8B�E����A����C���D���CBD�/�C�����D ������� !�F�: RS�6����������F�:� !� ��"� RS�C&��FCBC��B�A�QBEB���A�� ! B��B"�� RS�����/���C�� B��B"���*��B����6BC,� !��CE��� RS������D���CE�C� !���� ���� RS�%�����C��B��A��������B���� !����� RS�����/���C��������*BB �$�BA�$����,� !E� RS�(�%�O��7%����C�B���� !E � RS�L%8��������B���� !/� RS�B��DB�B"�C$�D����C$�����

Page 132: Embedded Android Workshop

����

���B�AC�A�[

accessibilityservice content hardware pim speech accounts database inputmethodservice preference testannotation ddm net provider textapp debug nfc security utilappwidget emoji os server viewbluetooth gesture service webkit widget

Page 133: Embedded Android Workshop

����

��������D4B���

� ':���A�"��%7

� 6������C���

� ��B����FBC

� 8��/�C�

� %C���BA�A�B �

� 6C�/��C�F���DBC��

� 'DB�� C�EA�C������D4B���

� ���D��

Page 134: Embedded Android Workshop

��<�

�����':���A�"��%7�M������D���CE��

� �CBD�/�C��!FB��!��C�!QBEB!B�AC�A!

� B !�����:�7D ��QBEB

� �������!�����:��QBEB

� ��!1 �C���EB�B"�C�QBEB

Page 135: Embedded Android Workshop

��>�

�������B !�����:�7D ��QBEB

...

import android.os.IOpersysService;

import android.os.OpersysManager;

...

private DownloadManager mDownloadManager = null;

private NfcManager mNfcManager = null;

private OpersysManager mOpersysManager = null;

...

return getDownloadManager();

} else if (NFC_SERVICE.equals(name)) {

return getNfcManager();

} else if (OPERSYS_SERVICE.equals(name)) {

return getOpersysManager();

}

...

Page 136: Embedded Android Workshop

��?�

private OpersysManager getOpersysManager() {

synchronized (mSync) {

if (mOpersysManager == null) {

IBinder b = ServiceManager.getService(OPERSYS_SERVICE);

IOpersysService service = IOpersysService.Stub.asInterface(b);

mOpersysManager = new OpersysManager(service);

}

}

return mOpersysManager;

}

Page 137: Embedded Android Workshop

��A�

��������������!�����:��QBEB

...

/**

* Use with {@link #getSystemService} to retrieve a

* {@link android.nfc.NfcManager} for using NFC.

*

* @see #getSystemService

*/

public static final String NFC_SERVICE = "nfc";

/** The Opersys service **/

public static final String OPERSYS_SERVICE = "opersys";

...

Page 138: Embedded Android Workshop

��G�

���������!1 �C���EB�B"�C�QBEB

package android.os;

import android.os.IOpersysService

public class OpersysManager

{

public void setValue(int value)

{

try {

mService.setValue(value);

} catch (RemoteException e) {

}

}

public OpersysManager(IOpersysService service)

{

mService = service;

}

IOpersysService mService;

}

Page 139: Embedded Android Workshop

��;�

�����6������C���

� �C�B������:<G��DB"�

� 7���B���DB"�DB"��

K���A��B ��"������B���DB"�DB"��

� ���E�C��DB"������C���CDB�

K����E�C����C����Q "���C����C

� ���E�C��DB"�����>?>���CDB�

K�C"F�>?>�V���C����C�S���C����>?>

� BC���DB"�������B��

K��B��F������B���� �B������C����>?>

Page 140: Embedded Android Workshop

�<��

�������B����FBC

� &��B����� �CBD�/�C��!FB��! B��B"��!�����D.7!�C�!��D!B�AC�A!�����D�!��B���FBC

� &������C�

� D��CE������7���*���,

� )�BF��������/���

� D��CE������7���L�F���*0^7�18Y8�E'_b$��B���,-

Page 141: Embedded Android Workshop

�<��

��<��8��/�C�

� &��B�����

� C��FB����B���

� �CBD�/�C��!FB��!��C�!C��!C��!:D�!B ���:D�

� )�E�����B���� %(1).��Y�1%3Y57&'���R�E��A�C!B�D�!���!B �����������:D�������D!���!B ��������:D�

� )��BD��

� �����D!���!B ��������:D�

� 5�CDB��VB ���BCC�CRb��E�F���.�b���������D��Rb���b���������D��Rb�?�b���������B �Rb�/B �E�����C�BD���Db������������CRb����b�����������CE�CRb[b��������� B��/�CARb����b��������� C�:�Rb���?��>>��?>�>�b��������� �C�RbG�G�b���������DD��Rb��� �!!��?��>>��A<�G<!��CE����!DD�b!S

Page 142: Embedded Android Workshop

�<��

��>��%C���BA�A�B �

� ����F��A!�BC"��! C�A����

%(1).��Y%��9�C'���R�\

����F������B�����\

������D�B�AC�A����B���� C�EA�C�\

������D�B�AC�A����B���� C�EA�C�:D��\

������C��\

������C��Q����\

�����C�B��Y����YAD�CB���\

����AB�E�ED�\

����A�:A� ��\

���

Page 143: Embedded Android Workshop

�<��

��?��6C�/��C�F���DBC��

� ���� B��B"��!B �!6C�/��C!C��!EB����!��C�"��:D�

VH���6���DBC�����S

V��C�"�BCCB���BD�RbF���DBC��bS

����V��DSC��"��V!��DS

����V��DS��� �!!///�"��"�����D!V!��DS

����V��DS3B���HV!��DS

����V��DS��� �!!///��B������D!V!��DS

����V��DSE�8V!��DS

����V��DS��� �!!///�D�����D!V!��DS

����V��DSE�� B��V!��DS

����V��DS��� �!!///�D�� B�����D!V!��DS

���

Page 144: Embedded Android Workshop

�<<�

��A��'DB�� C�EA�C������D4B���

� ���� B��B"��!B �!'DB�!C��!:D�! C�EA�C��:D�

VH���CDB��EBCB������S

����V C�EA�C�ARb"DB�b��BF��RbCDB�b�A�DB�Rb"DB����DbS

��������V���D�"��CRbDB X���X�!!DB �"DB����Db����C�BD�RbK�DB�b!S

��������V���"��"��CRb�D� X���X�!!�D� �"DB����Db����C�BD�RbK�DB�b!S

����V! C�EA�CS

����V C�EA�C�ARb"��"��DB�b��BF��RbC��"���EB�b�A�DB�Rb"��"��DB����DbS

��������V���D�"��CRbDB X���X�!!DB �"��"��DB����Db����C�BD�RbK�DB�b!S

��������V���"��"��CRb�D� X���X�!!�D� �"��"��DB����Db����C�BD�RbK�DB�b!S

����V! C�EA�CS

����

����VH�����DD���.�� C�EA�C����S

����

����V C�EA�C�ARbBDb��BF��Rb�7Eb�A�DB�RbBD���DbS

��������V���D�"��CRbDB �!!DB �BD���Db��BF��Rb7E�%b����C�BD�RbK�DB�b!S

��������V���"��"��CRb�D� �!!�D� �BD���D�>GAb����C�BD�RbK�DB�b!S

����V! C�EA�CS

����V C�EA�C�ARbB��b��BF��Rb�1&b�A�DB�RbB�����DbS

��������V���D�"��CRbDB �!!DB �B�����Db��BF��Rb7E�%b����C�BD�RbK�DB�b!S

��������V���"��"��CRb�D� �!!�D� �B�����D�>GAb����C�BD�RbK�DB�b!S

����V! C�EA�CS

���

Page 145: Embedded Android Workshop

�<>�

��G�����D��

� �����CBD�/�C�!FB��!��C�!C��!C��!EB����!�������:D�

Page 146: Embedded Android Workshop

�<?�

��E!A��3AA'�F�B�E�����4�"��B!E

� (B���B��

� �)9�"���CB���

� 8)9�"���CB���

� �C�B��"�B��C����A�E�������B�

Page 147: Embedded Android Workshop

�<A�

���(B���B��

� �)9�

� %C�EA�"�����C����C�B����BD���C��:��C�B��A�E��� �C��B������������C�D�A��A!�����D���AC�A��%7��

� 8)9�

� �BD��B���)9�CB���B��

� �����D��C����A�E�������B��

� ���BE�A��BE�"��������B�F�BC��������B���C�D��CA� BC���

� �������C�������F��A� BCBD���C�����A�����C�B�������������B���':����������F������BA����"�F��

Page 148: Embedded Android Workshop

�<G�

����)9�"���CB���

� 6��A�"������)9�

K���F��A!��E���� ���

K��������A����"

K�DB����A�

� 7���%7�D�A��A$�A������F���C��DB���

K�DB���� AB���B

� &��B�����^B�� _!���!����!���:�:G?!�A�!

� .��"�B������D��)9�

� '�� ���SB�A�/�S%C���C������S��AC�A�S2�)9�&��B���2

� '�� ���SB�A�/�Sb��AC�A��)9�B�A��L)�EB�B"�Cb�Sb7���B���A�%B��B"��b�Sb. AB���������b

Page 149: Embedded Android Workshop

�<;�

���8)9�"���CB���

� 6��A

K��A��A�!F��A!�����

K��: �C���8)(17)Y8)9Y(11�R^B�� _!�A�

K��!DB���C���B��������

K��!DB���C���B��

7E%1(��8��B�(878C�HH

������C �������A����"���CB���B��8)9�C���B��� B��B"���C�D���CB�����C����������/�"������ �B���CD������:�:G?

���� C��������'@�('E'&3�&18C�B�A�DB���B����'L'(�&�=1.(�����B�A�B����C�DB������7������ �B�����A����B�������$� ��B���C�BA�A���!)'L'&1%E'8���@���B�� C�EA������C������������/����A����B��D�C���B����

�C��������C������/B������A����B��^�!8_�

Page 150: Embedded Android Workshop

�>��

<���C�B��"�B��C����A�E�������B�� �AEE!AA'0������������C�����C�������� �EB�BF���B��

��� �!!�D�C����B�"�����C"! C�Q����!�C�������� )�/���BA�$� B�����$�F��A�$����B���$�����

� ��D C�����5���� �

� E�������"�FB��A

� �� �C������F�$�"�F��B�A��"�F�

� �� �C����(E$�6�B����$�E7%�$�%�/�C%�$��=$�c

� 5BC���/����DB��B��A

Page 151: Embedded Android Workshop

�>��

� E����DB�����C�����������/�"�BC�����B���A����.F��������CA�C���������C���������"�

� "B/�

� ��:���

� B���DB��

� �F����

� �E�

� �F���C���>�A�E

� .���0��A��B ��"������B��2����"��������

Page 152: Embedded Android Workshop

�>��

� )�/���BA�B�A��:�CB������K`%(F(11�a!F��A������

� ����"�C���C��������

$ cd crosstool-ng-1.10.0/

$ ./configure

� 6��A�B�A����B����C���������"�

$ make

$ make install

� ����"�C���C��������

$ cd ${PRJROOT}/build-tools

$ ct-ng menuconfig

Page 153: Embedded Android Workshop

�>��

� Options:

� %B����S%C��:�AC����C���K`%('57@a!K`��Y��(C'�a

� �BC"���� �����SBC�������C��� �/�C �

� 1��S�BC"���1������:

� ���FCBC��S���FCBC���"�F�

� ���FCBC��S':�CB���B"����.Y51(�753Y�1.(�'

� )�F�"��B�������"AF�O���CB��

� 6��A�����������B��

$ ct-ng build

Page 154: Embedded Android Workshop

�><�

�A���!B�B'B!��3�E!�)�B!�

� ��AC�A���D B�F����%C�"CBD�

� ���C�����A�������AC�A���B��

� ��D B�F����)�������)���D����*�)),�M�%����

� ��D B�F��������������*���,�M�E���B��D

� 'B�����AC�A�E�C�����B���/���))�O����

� ����

� %BC������1�%

� (����C�D���������"�.�6��E�C����B��B���A�A�E��

� 6B��A����F.��

� (����EBC���������B ������BC"��

� (���������)6

� %C�EA���C� �C�����F��F��B�B��4�A�B�A!�C������FB������C��"��

Page 155: Embedded Android Workshop

�>>�

Page 156: Embedded Android Workshop

�>?�

� (� �C��

� �4 ���������B��"�@E&������B�A���C���������

� ������������UB�AC�A���D

� 6��A�"���������

K���F��A!��E���� ���

K�DB������

� &B�����"���������

K��A����!����!���:�:G?!F�!

K��!���

K����Y�����S�

K����Y�����S����

���

Page 157: Embedded Android Workshop

�>A�

� .��"���������

K����Y�����S������ �B�

&������ �B���*G������B�,�

�"�B��C�

(���

LE

%�C��CDB���

� ����C��

��AC�A

FBEB

���

K��!������BC���� �B�����

Page 158: Embedded Android Workshop

�>G�

� �C�B����E�C�A�

� �"�B��C�������

� %�B���CD��%7������

� )B�E��LE������

� %�B���CD�)B�B�E�A��

� %�B���CD�7������

� %�B���CD�%�CD�����

� %�B���CD�(����C���

Page 159: Embedded Android Workshop

�>;�

��B����������

�BCD��B"�D��CU� �C������D

Page 160: Embedded Android Workshop

�?��

�����/��A"�D�����

� ��D���"�C���B�A��� �����B�����C�D�C��"��N����AC�A�0)�E�C�A�2�B��A�E��� �C�B�AC�A���D�A��CF���A���A�C������ B���������������