Friday, 21 February 2014

Android in layman point [ Android Architecture ]

The Android platform
  • Android platform is software stack
  • Supports mobile and tablet
  • It has many layers to support application to run.

The android architecture
  1. Application layer
  2. Application framework
  3. Libraries and DVM
  4. Linux kernel (provides generic OS services)

Linux kernel proves following services

  1. Security
  2. Memory & process management,
  3. File & network IO
  4. Device drivers to communicate with varies hardware
  5. Common OS services.

Android Linux kernel provides extra service other than Linux 
  1. Power management
  2. Android shared memory(ashm)
  3. Low memory killer
  4. Inter process communication (binder)

  1. System C libraries System libraries written in C/C++ native Libraries
    • Bionic Libc
  2. Surface manager
    • Display management
  3. Media Framework
    • Audio/Video
  4. Webkit
    • Browser engine
  5. Open GL
    • Graphics Engines
  6. SQLite
    • Relation Database Engine

Android Runtime
  • Support writing and running android applications
  • Two components in android run time

Core Java Libraries

  • Android application written in Java programming language
  • Set of standard functionality are provided by library to write application.
    •  Basic Java classes – java.* javax.* (data structure, Ux, Concurrency, FILE IO)
    •  App Lifecycle – Android.*
    • Internet/Web service – ORG.Unit Testing – Junit.*

 Dalvik Virtual Machine

  • Software executes android application.
  • Android application written in JAVA which needs JAVA virtual machine to execute.
  • But Java virtual machine is too heavy to run on mobile platform it is made for Desktop
  •  So Android provides the optimized version of Java Virtual machine which runs on Mobile
   Typical Workflow of App Development
  1. Write application in java program (
  2. Java compiler compiles to Java byte code files (file.class)
  3. Dx converts the Byte code files (file.class) to single dex byte code file (classes.dex)
  4. Dalvix executes the DEX byte code file to machine language 

Resource Constrained Environments
  • Slower CPU
  • Less RAM
  • Limited Battery Life

Application Framework

Package manager

-          Maintain the data base of all the installed applications

Window Manager

-          Manages many windows
-    System Notification
-    Main application window
-    Application Sub window

View System

-          Provides command user interface
-    Icons buttons, text box, label

Resource manager

-          Non compiled resources
-    Strings, graphics, layout files

Activity manager

-          Manages app life cycle and navigation support

Content Provider

-          Inter application data sharing.

Location Manager

-          Provides location and movement information

Notification Manager

-          Place information in notification bar (e.g. SMS, Missed Call, batter charging info)

Application Layer
  • Application like phone , contacts, launcher, SMS
Check out the next blog for setting up your android development environment...

Tuesday, 4 February 2014

Setting up the torrent client on Ubuntu/Raspberry pi

In this post, I will show you how to setup transmission torrent client in your Ubuntu/Raspberry pi

What is Bittorrent?

BitTorrent is a protocol used for peer-to-peer file sharing that is used to distribute large amount of data over the internet. It means that the torrent client can download the data from the nearest peer instead of getting the data from a single source server. It can be used to reduce the server and network impact of distributing large files. It can work over networks with lower bandwidth.

Execute the below comments

 Install transmission torrent client

$> sudo apt-get update
$> sudo apt-get install transmission-daemon -y


After successful installation stop the transmission-daemon 

$>  sudo service transmission-daemon stop

Configure the torrent client by modifyint the settings.json file

$> sudo vim /etc/transmission-daemon/settings.json


Modify the below value in the settings.json file

            => "rpc-authentication-required": false
            => "rpc-whitelist": ", 192.168.0.*"
            => "rpc-port": 9091
            => "rpc-url": "/transmission/"


 Start the transmission-daemon.

$> sudo service transmission-daemon start

Open the web browser type the below URL

<Your Machine IP>:9091/transmission/web/


Upload the torrent file or URL to download torrent content