Presentation is loading. Please wait.

Presentation is loading. Please wait.

Android Introduce yourself.

Similar presentations


Presentation on theme: "Android Introduce yourself."— Presentation transcript:

1 Android Introduce yourself

2 What is Android? Android is and OS created by Google.
It target market is mobile phones and tablets The first Android phone designs were going to look like crappy blackberries – they never saw the light of day because Apple released the iPhone and Google realized they needed to do better – so they did.

3 The Android OS The Android OS uses a Linux kernel.
Pretty much everything else comes from Google. On top of the Linux kernel sits a BSD licensed C library Called bionic that the core android libraries link with. On top of this implemented the other key libraries such as a C++ run time environment. Op top of this comes Davlik the Android “JVM”, This is the part of Android that Google was sued by Oracle for because the design of Davlik is basically that of a Java Virtual Machine – early android actually contained source files from Sun. The Davlik runs the Apps on your phone, but we're not going to talk about this much. Android is only barely like our friend GNU/Linux. Really the only common code that Android shares with GNU/Linux is the Linux kernel. This is because Google pretty much wrote Android from scratch.

4 AOSP Google Releases the source code for the entire android OS under the “Android Open Source Project” Google only does this for Major releases of the Android OS and it is released as a starting point for device vendors to port Android to a device. The code in the AOSP site is pretty raw. It only supports a limited number of devices – mostly the Nexus devices sold by Google. The site is difficult to navigate. Its really not a fun place to learn about Android at all. The key thing you learn here is that the Android OS is built from a big collection of software repos.

5 Licensing Android is mostly covered by an Apache or BSD license.
This means that Android Device Vendors can take a develop android for their device and not share the code back. They like this because they feel like that HTC sense crap they make is actually good. It also helps them keep there hardware drivers secrete in a way because the HAL that actually interacts with the very simple camera driver that's in the Linux kernel stays propriety. Thus porting android to a generic phone is really difficult.

6 Fun AOSP is mostly a dumping ground for Google code so that other massive companies full of paid developers can download it and start porting it to their devices. This really isn't something that is fun for your average guy. Furthermore the modifications that these device makers are making to Android are pretty much closed source – this is because of weak copy left licenses that mostly govern the Android project. Cyanogenmod is a community/open source project. That takes the code from the 50+ git repos that make up the android project and creates something you can actually build for your device with only basic understanding of software engineering. Cyanogenmod also adds its own third party code to Android for supporting things like Wifi tethering etc and creates third party ROMs for many popular devices. This is a good place for our development adventure to begin

7 Getting started First I recommend you actually install Cyanogenmod on a device you own. This will get you familiar with running a unsupported warranty voiding OS on your $600 smart phone. I've installed Cyanogenmod on my personal cell phone. The fun part was when it wiped all my data! Its safe to run and I recommend it if you have a device that receives a stable release. The things that will break are GPS, Cameras and WIFI, typically basic calling and 3G data will always work. If you are actually going to start building ROM's I highly recommend that you get a second phone to play with. I purchased a Galaxy Nexus S with a cracked screen off ebay for $30. The Nexus phones will be easier to start with because unlocking the bootloader on them is easily done and they are well supported by the android code.

8 Woah, What is a ROM? ROM is an old computer term for “Read Only Memory” An Android ROM is a archive containing the Android OS that can be installed on device. Cyanogenmod distributes their ROMS in a simple .zip archive. It doesn't matter whether you call CyanogenMod a "ROM" or a "firmware" or an "operating system" or a "distribution", it all means in this case the same thing.

9 Cyangenmod ROM install
Basic Process is: Access root on your phone Use this to rewrite the recovery area with a custom program (typically clockworkmod) Use clockworkmod to wipe the existing ROM and replace it with one you've loaded form the /sdcard Your data will be GONE after you do this, make sure you backup your stuff (contacts/pictures) to google or other service. (usually) Use clockworkmod to load the gapps package so that you can access google services

10 G-what? Some of the really useful stuff on your phone are propriety Google applications and services. These are called the “gapps” in cyanogenmod speak. This includes the play store app and things like navigation. Google has been tying the Android OS more tightly to their services so a phone without G-Apps is much less fun then one with. Applications can still be side loaded, but if they use certain Google services from G-Apps (location data?) they might not work.

11 HTC Inc Example

12 Ok, that was cute, now build it
Building Cyanogenmod is not difficult, Understanding what you are doing is. Setting up the build environment on your laptop is going to take a hour or two, syncing the source archives is going to take a long time, probably a few hours as they are 12GB in size.

13 First: Find the Build Guide for your device
You can use this page to discover what devices support CM11. explain crespo4g mess up

14 Now RTFM Don't try to force the packages on from the Google Android Page you will brake ubuntu desktop – unless you don't care about a desktop then go right ahead. I used LTS. This seams to be a good fit. Newer would work but this was the right mix of new and old. You really need Java 1.6 from Oracle, do not mess around with OpenJDK – at least not until you have more experience. The repo sync command is going to take a long time. Have a good internet connection and something else to do while it runs – like go to bed. If you repo sync to a new release you are doing a git rebase. Moving backwards is relatively quick, maybe min... Going fowards will take hours. If you repo sync and get connection timeouts use the - j# switch to limit the number of threads, 1 might be a good idea if you're at home on mediacom between 4:00pm and 6:00pm.

15 Builds I did 7.2 for HTC inc – stock cyanogenmod
11.0 for HTC inc – some hacked up build I found on github, worked booted but had massive slowness and video corruption 10.2 stock cyanogenmod for crespo4g – FAILED!!! Big fat waste of time looks like 10.2 doesn't work on crespo 10.1 stock cyanogenmod for crespo4g... Success... IDK.

16 Unlocking the Bootloader on the Nexus S
adb reboot bootloader * daemon not running. starting it now on port * * daemon started successfully * fastboot oem unlock < waiting for device > ^C fastboot devices (WTF? Not devices?) sudo su - [sudo] password for qclug: fastboot devices 34319C6E884D00EC fastboot fastboot oem unlock ... OKAY [ s] finished. total time: s

17 Building For Unsupported Devices
XDA Developers – be prepared for your head to explode.


Download ppt "Android Introduce yourself."

Similar presentations


Ads by Google