'old'에 해당되는 글 427건

  1. 2010.02.04 What is Android?
  2. 2010.02.04 Ubuntu Build Machine Install
  3. 2010.02.01 Eclipse Plugins
  4. 2010.02.01 Git과 SVN 통합
  5. 2010.02.01 Git 설치와 설정
  6. 2010.02.01 Git 이란?
  7. 2010.01.21 Android Introduction

What is Android?

old/Basic 2010. 2. 4. 16:02

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.


Features

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE


Android Architecture

The following diagram shows the major components of the Android operating system. Each section is described in more detail below.

Android System Architecture


Applications

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.


Application Framework

By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.
 

Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.


Underlying all applications is a set of services and systems, including:


  • A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
  • Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
  • A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
  • A Notification Manager that enables all applications to display custom alerts in the status bar
  • An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack


For more details and a walkthrough of an application, see the Notepad Tutorial.


Libraries

Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:


  • System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications


Android Runtime

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.


Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.


The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.


Linux Kernel

Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.



EDGE 란 Enhanced Data rates for GSM Evolution 의 약자,

2.5세대 무선 접속 규격으로 GSM 과 구성이나 스펙트럼, frame 구조는 같으나 높은 data rates 를 지원.

휴대전화, PDA, 기타 무선 인터넷 장치를 이용하여, 전화통화와 웹서핑을 즐기며 비디오·오디오·멀티미디어

컨텐츠를 다운받아 재생할 수 있음

EDGE 표준은 보통 무선 서비스보다 세 배 넓은 대역폭인 473.6 kbps의 레이트로 데이터를 전달할 수 있게 고안


EDGE

Symbol Rate - 270.833 kHz
Bits per symbol - 3
Modulation format - 3pi/8-rotating 8PSK
Baseband filter - "linearized" Gaussian
Envelope - Non-constant amplitude 


'old > Basic' 카테고리의 다른 글

Parcelable Object 1  (0) 2010.07.06
안드로이드 기본 개념  (0) 2010.07.06
JNI (Java Native Interface)  (0) 2010.07.06
http://mc500.tistory.com/entry/Goole-Android-Build-해-보  (0) 2010.02.09
how to make sqplite3 table  (0) 2010.02.09
Posted by jazzlife
,

Ubuntu-9.04-server-i386.iso를 기준으로 설치한다.

[desktop vs server]
desktop version: 3GB RAM이상을 인식 못함. 다수 접속시 다운되는 현상.
server version: 16GB RAM까지 인식. 다수 접속 가능. GUI 제거 되어 있음. 추가 설치 필요. 영문 설치.


1. 고정 IP 주소 설정

$ sudo vi /etc/network/interfaces
   auto eth0
    iface eth0 inet static
    address XXX.XXX.XXX.XXX (ip주소)
    netmask 255.255.255.0   (넷마스크)
    gateway XXX.XXX.XXX.XXX  (게이트웨이)
2. DNS 설정
 $ sudo vi /etc/resolv.conf
nameserver 165.243.137.34   (1차 도메인 서버 주소)
nameserver 165.243.137.23   (2차 도메인 서버 주소)
  • 변경된 설정 적용
    $ sudo /etc/init.d/networking restart


3. GUI 설치

 $ sudo apt-get update
 $ sudo aptitude install -- no-install-recommends ubuntu-desktop
 $ sudo reboot
  • GUI 설치 옵션

              여러 옵션이 있다. 참고 ☞ http://www.ubuntugeek.com/install-gui-in-ubuntu-server.html


4. SSH 설치 (터미널 접속이 가능하도록 SSH를 설치한다.)

$ sudo apt-get install ssh


5. SAMBA 설치 및 설정 
    리눅스 서버와 자료를 공유하기 위해서 samba를 설치한다.

  • 설치
$ sudo apt-get install samba smbfs  
  • 설정
$ sudo vi /etc/samba/smb.conf    ($ sudo gedit /etc/samba/smb.conf)
  • 각 ID별로 HOME디렉토리를 공유하여 사용할 수 있게 세팅
####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = user


 

======================= Share Definitions =======================

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares.  This will share each
# user's home directory as \\server\username
[homes]
   comment = Home Directories
   browseable = yes

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
 read only = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
;   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
;   directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.  Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
# This might need tweaking when using external authentication schemes
   valid users = %S
======================= Share Definitions =======================

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares.  This will share each
# user's home directory as \\server\username
[homes]
   comment = Home Directories
   browseable = yes

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
 read only = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
;   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
;   directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.  Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
# This might need tweaking when using external authentication schemes
   valid users = %S


 

  • 설정 후 재시작
$ sudo /etc/init.d/samba restart 
  • 사용자 등록
$ sudo smbpasswd -a userID  (ex. sudo smbpasswd -a rickylee)

'old > Build Serv' 카테고리의 다른 글

ubuntu android 설치  (0) 2010.03.12
adb driver setting for ubuntu  (0) 2010.03.12
Posted by jazzlife
,

Eclipse Plugins

old/Git 2010. 2. 1. 10:43

Eclipse Plugins

'old > Git' 카테고리의 다른 글

git 요약  (0) 2010.07.27
Subversion Git 사용법  (0) 2010.05.14
Git과 SVN 통합  (0) 2010.02.01
Git 설치와 설정  (0) 2010.02.01
Git 이란?  (0) 2010.02.01
Posted by jazzlife
,

Git과 SVN 통합

old/Git 2010. 2. 1. 10:37

git와 svn 통합

git와 svn을 연동하기 위한 도구로 git에서는 git-svn을 지원하고 있다. git-svn을 사용방법에 대하여 살펴보자.


  • svn 저장소에 있는 프로젝트를 기반으로 로컬 git 저장소를 생성하는 방법

    git-svn clone svn://www.javajigi.net/repo/Simple -Ttrunk -bbranches -ttags
  • svn 저장소의 표준 이름을 사용하여 git 저장소 생성. 각 브랜치별 표준 이름은 /trunk, /tags, /branches이다.
    git-svn clone -s svn://www.javajigi.net/repo/Simple
  • svn 저장소의 크기가 클 경우에는 clone하는데 많은 시간이 소요된다. svn에 commit한 수가 너무 많아 clone하는데 많은 시간과 많은 용량을 사용할 것으로 판단될 때 svn의 HEAD(최신 revision no)만 가져올 수 있다. -r 옵션을 사용해서 가능하다.
    git-svn clone -s svn://www.javajigi.net/repo/Simple -rRevisionNo
  • 특정 버전의 소스를 가져오는 방법
    git-svn fetch -rRevsionNo

git와 svn 통합

  • git와 svn을 통합할 때 svn의 commit 수가 많아지면 clone하는데 소요되는 시간과 많은 하드 디스크 용량을 필요로 한다. 따라서 git와 svn을 같이 사용하려고 할 경우 svn 저장소를 생성한 후 가능한 빠른 시간내에 git clone을 만드는 것이 좋다.

git와 svn을 통합이 사용 명령어

  • git-svn rebase : SVN 서버에 변경된 내용을 반영한다.(svn의 update와 같은 기능.)
  • git-svn dcommit : SVN 서버에 소스를 Commit할 수 있다.

참고 문서

'old > Git' 카테고리의 다른 글

git 요약  (0) 2010.07.27
Subversion Git 사용법  (0) 2010.05.14
Eclipse Plugins  (0) 2010.02.01
Git 설치와 설정  (0) 2010.02.01
Git 이란?  (0) 2010.02.01
Posted by jazzlife
,

Git 설치와 설정

old/Git 2010. 2. 1. 10:26

우분투에 Git 최신 버전 설치

  • 우분투에 Git 최신 버전을 빌드하기 위해서는 먼저 의존 관계에 있는 프로그램을 설치해야 한다.

          >sudo apt-get build-dep git-core git-doc

          >./configure
          >make
          >sudo make install

  • 설치 경로를 바꾸고자 한다면..

          >./configure --prefix=/usr/local/git
          >make
          >sudo make install

우분투 설치 후 gitk와 git-gui가 동작하지 않을 경우

  • 우분투에 tcl/tk가 설치되어 있지 않을 경우 exec: 3: wish: not found wish 에러가 발생한다. 이와 같은
  • 에러가 발생할 경우에는 tcl/tk 모듈을 설치한다.

          >sudo apt-get install tcl8.5
          >sudo apt-get install tk8.5

  • 위와 같이 apt-get을 이용하거나 수동으로 설치를 하면 정상적으로 동작한다.

'old > Git' 카테고리의 다른 글

git 요약  (0) 2010.07.27
Subversion Git 사용법  (0) 2010.05.14
Eclipse Plugins  (0) 2010.02.01
Git과 SVN 통합  (0) 2010.02.01
Git 이란?  (0) 2010.02.01
Posted by jazzlife
,

Git 이란?

old/Git 2010. 2. 1. 10:24

 CVS, SVN만 잘 사용하더라도 애플리케이션을 개발하는데 큰 문제가 되지 않았다. 그런데 CVS와 SVN을 사용하면서 가장 짜증나는 것은 브랜치를 관리하는 것이다. 특히 Version Control for Multiple Agile Teams와 같이 태스크를 관리하고 버전 관리 시스템을 활용하는데 CVS, SVN은 분명 한계점을 가지고 있다. CVS와 SVN을 사용해 Merge 작업을 해본 개발자라면 짜증이 완전 지대로일 것이다.


 그 대안으로 찾은 것인 분산 버전 관리 시스템(Distributed Version Control Systems (이하 DVCS))이다. 중앙 버전 관리 시스템과 분산 버전 관리 시스템에 대한 자세한 설명은 Intro to Distributed Version Control (Illustrated) 문서를 통하여 확인할 수 있다. 요즘은 온라인 상에 너무 좋은 문서가 많아서 따로 작성하지 않아도 된다는 것이다. 단, 대부분의 문서가 영어로 되어 있다는 것이 단점이다.


 Git는 무료로 사용할 수 있는 DVCS의 한 종류이다. 중앙 버전 관리 시스템을 사용할 경우 정형화된 하나의 워크플로우를 가져갈 수 있기 때문에 학습 비용이 적어 프로젝트에 처음 적용할 때 유리하다. 하지만 다양한 워크플로우로 응용하는데 한계점이 있다. DVCS는 이 같은 한계점을 극복하고 다양한 워크플로우를 가져갈 수 있다. DVCS를 사용할 때의 다양한 워크플로우는 http://bazaar-vcs.org/Workflows에서 볼 수 있다.


 Git가 가지는 장점 중의 하나는 지금까지 많이 사용하고 있는 중앙 버전 관리 시스템인 SVN과 같이 사용하는 것이 가능하다는 것이다. 지금까지 중앙 버전 관리 시스템에 익숙한 개발자에게 바로 DVCS를 사용하도록 하는 것은 쉽지 않다. 이 같은 환경이라면 SVN과 Git를 같이 사용하도록 워크플로우를 가져가는 것이 바람직하다.

'old > Git' 카테고리의 다른 글

git 요약  (0) 2010.07.27
Subversion Git 사용법  (0) 2010.05.14
Eclipse Plugins  (0) 2010.02.01
Git과 SVN 통합  (0) 2010.02.01
Git 설치와 설정  (0) 2010.02.01
Posted by jazzlife
,

Android Introduction

old/Android 2010. 1. 21. 15:18

1 Introduction

What is Android?
Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google and later the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries. Applications written in C and other languages can be compiled to ARM native code and run, but this development path is not officially supported by Google.

The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 48 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache license, a free-software and open source license.


What is The Open Handset Alliance?
Open Handset Alliance, is a consortium of several companies which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, ... These companies which aim to develop technologies that will significantly lower the cost of developing and distributing mobile devices and services. The Android platform is the first step in this direction -- a fully integrated mobile "software stack" that consists of an operating system, middleware, user-friendly interface and applications.

License
Android is under version 2 of the Apache Software License (ASL). The Apache license allows manufacturers and mobile operators to innovate using the platform without the requirement to contribute those innovations back to the open source community.


2. Platform


2.1 Hardware

First and foremost, Android is a software stack for mobile devices. This means that high on the list of priorities is the preservation of battery power and the efficient management of limited memory resources. There are five distinct layers to the Android system stack:

  • The Acorn RISC Machine (ARM) Linux core forms the solid base upon which all the other layers stand. Linux is a proven technology that is highly reliable, and the ARM processor family is known for high performance on very low power requirements.


  • The libraries provide the reusable and sharable low-level code for basic functions such as codecs — software for coding and decoding digital sound and video — functions for the presentation of rich graphics on a small displays, secure shell support for encrypted TCP/IP traffic into the cloud, as well as component support for Web browsing (WebKit), SQL database functionality (SQLite), and standard C library functionality you would expect in a Linux system.

  • The Dalvik run-time byte-code interpreter, which strongly resembles the Java™ language byte-code interpreter, adds a few distinct features that uniquely define the security and power-preserving model of Android. Every application currently running, for example, has its own user ID and its own copy of the interpreter running to strictly separate processes for security and reliability.

  • The Android application framework enables you to use and replace components as you see fit. These high-level Java classes are tightly integrated components that define the Android API.
  •  The Android core applications include the WebKit browser, Google calendar, Gmail, Maps application, SMS messenger, and a standard e-mail client, among others. Android applications are written in the Java programming language, and you can download many more from the Android market on the fly.



Android is not a single piece of hardware; it's a complete, end-to-end software platform that can be adapted to work on any number of hardware configurations. Everything is there, from the bootloader all the way up to the applications. And with an Android device already on the market, it has proven that it has what it takes to truly compete in the mobile arena.


2.2 Operating System(s)


사용자 삽입 이미지

Android uses Linux for its device drivers, memory management, process management, and networking. However you will never be programming to this layer directly.

The next level up contains the Android native libraries. They are all written in C/C++ internally, but you’ll be calling them through Java interfaces. In this layer you can find the Surface Manager (for compositing windows), 2D and 3D graphics, Media codecs (MPEG-4, H.264, MP3, etc.), the SQL database (SQLite), and a native web browser engine (WebKit).

Next is the Android runtime, including the Dalvik Virtual Machine. Dalvik runs dex files, which are converted at compile time from standard class and jar files. Dex files are more compact and efficient than class files, an important consideration for the limited memory and battery powered devices that Android targets.

The core Java libraries are also part of the Android runtime. They are written in Java, as is everything above this layer. Here, Android provides a substantial subset of the Java 5 Standard Edition packages, including Collections, I/O, and so forth.

The next level up is the Application Framework layer. Parts of this toolkit are provided by Google, and parts are extensions or services that you write. The most important component of Android Team 2009 4
the framework is the Activity Manager, which manages the life cycle of applications and a common “back-stack” for user navigation.

Finally, the top layer is the Applications layer. Most of your code will live here, along side built-in applications such as the Phone and Web Browser


2.3 Network Connectivity


It supports wireless communications using:

  • GSM mobile-phone technology
  • 3G
  • Edge
  • 802.11 Wi-Fi networks



2.4 Security

Android is a multi-process system, in which each application (and parts of the system) runs in its own process. Most security between applications and the system is enforced at the process level through standard Linux facilities, such as user and group IDs that are assigned to applications. Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.


Security Architecture
A central design point of the Android security architecture is that no application, by default, has permission to perform any operations that would adversely impact other applications, the operating system, or the user. This includes reading or writing the user's private data (such as contacts or e-mails), reading or writing another application's files, performing network access, keeping the device awake, etc. An application's process is a secure sandbox. It can't disrupt other applications, except by explicitly declaring the permissions it needs for additional capabilities not provided by the basic sandbox. These permissions it requests can be handled by the operating in various ways, typically by automatically allowing or disallowing based on certificates or by prompting the user. The permissions required by an application are declared statically in that application, so they can be known up-front at install time and will not change after that.


참고자료 :

Posted by jazzlife
,