!!! coursera-android

[{TableOfContents }]


!! Time spent

||Day || hours
|2014-01-21 | 1
|2014-01-22 | 1
|2014-01-23 | 1
|2014-01-25 | 2


!! TODO

* [Dalvik Virtual Machine, internals | http://www.youtube.com/watch?v=ptjedOZEXPM]
* [Android Security Underpinnings | http://www.youtube.com/watch?v=NS46492qyJ8]

!! Weeks

! Week 1

* You can telnet to your emulator, the port is in the title of your emulator (5554).
* manipulate device while logged in :
** ''network speed edge'' or ''network speed full'' or ''power capacity 5'' or ''power status not-charging'' or ''geo fix 0.00 40.00'' or ''sms send 301555555 "test msg" '' , see here for more:
{{{
metskem@athena ~ $ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
help
Android console command help:

    help|h|?         print a list of commands
    event            simulate hardware events
    geo              Geo-location commands
    gsm              GSM related commands
    cdma             CDMA related commands
    kill             kill the emulator instance
    network          manage network settings
    power            power related commands
    quit|exit        quit control session
    redir            manage port redirections
    sms              SMS related commands
    avd              control virtual device execution
    window           manage emulator window
    qemu             QEMU-specific commands
    sensor           manage emulator sensors

try 'help <command>' for command-specific help
OK
}}}
** you can run multiple emulators, and one let call the other, the number is equal to the port number again
* DDMS = Dalvik Debug Monitor Service
* method tracing
* [logcat (cmdline syntax)|http://developer.android.com/tools/debugging/debugging-log.html], for example:
{{{
adb -s emulator-5554 logcat WikiNotes:I *:S
}}}
** ''-s emulator-5554'' to select the (virtual) device, if you have more than one running
** ''WikiNotes:I'' - Informational messages for tag WikiNotes
** ''*:S'' - All other tags to Silent


! week 2

Four main building blocks in Android :
* __Activity__ - Interaction with user (input and output) 
** single focused task for the user
* __Service__ - Long running background stuff
* __BroadcastReceiver__ - Receive and act upon events in Android
* __ContentProvider__ - Provide services to applications (input and output)