바로 위에서 link(이하 링크)가 몇번 언급되었었다. 이 링크에 대해서 자세히 알아보도록 하겠다.

링크는 파일을 가리키는 일종의 별칭으로 주로 관리의 목적으로 사용한다. 예를 들어 오픈오피스의 문서 프로그램을 실행시키기 위해서 /usr/local/openoffice/bin/openoffice_swrite를 실행시켜야 한다고 가정해보자. 이거 기억해서 수행시킬려면 보통 곤욕스러운 일이 아닐 것이다. 이 경우 링크를 이용해서 간단하게 문제를 해결할 수 있다.
# ln -s /usr/local/openoffice/bin/openoffice_swrite /usr/bin/swrite  
/usr/bin 은 환경변수 PATH에 등록이 되어있을 것이기 때문에, 간단하게 swrite만 입력하는 정도로 /usr/local/openoffice/bin/openoffice_swrite 를 실행할 수 있게 된다. 이제 ls를 이용해서 /usr/bin/swrite 의 정보를 확인해 보도록 하자.
$ ls -al swrite 
lrwxrwxrwx 1 root root 43 2007-11-26 23:44 swrite -> /usr/local/openoffice/bin/openoffice_swrite
swrite가 원본 openoffice_swrite 를 링크하고 있는 것을 확인할 수 있을 것이다.

직관적으로 이해할 수 있을 것이다. 그러나 link 는 두가지 종류가 있다. 심볼릭 링크와 하드링크가 그것이다. 이둘의 차이점에 대해서 알아보도록 하겠다.

hard link

앞서 파일은 장치내에서 식별되기 위해서 inode 를 가진다는 것을 언급했었다. 여기에 inode 가 1234 인 파일 myfile이 있다고 가정해보자. 이것을 다른 Directory에 복사하기 위한 가장 일반적인 방법은 파일을 copy 하는 것으로 이경우 새로운 inode 를 가지는 파일이 생길 것이다. 그럼 cp(1)를 이용해서 파일을 복사해보도록 하자.
# mkdir testdir 
# cp myfile testdir/myfile2
이제 두개 파일의 inode를 확인해 보도록하자. stat함수를 이용해서 프로그램을 만들 필요는 없다. ls 의 -i옵션을 사용하면 간단하게 파일의 inode 값을 알아낼 수 있다.
# ls -i myfile  
1131883 myfile
# ls -i testdir/myfile2
1163816 testdir/myfile2
내용은 동일하지만 완전히 다른 파일이 생성되었음을 알 수 있다.

이 방법은 대부분의 경우 유용하게 사용할 수 있겠지만 하나의 파일을 여러개의 디렉토리에 공유할 목적으로 사용하고자 할 경우 문제가 발생한다. 예를 들어 주소록 파일인 /home/yundream/mydata.txt 가 있다고 가정해보자. 이 파일을 /home/dragona 에 공유하길 원한다. 만약 mydata.txt에 새로운 내용이 추가되거나 삭제되면 /home/dragona 에도 그대로 적용되어야 한다. 단순히 copy 할경우에는 한쪽에서 변경하면, 다른 한쪽에는 반영되지 않을 것이다. 링크를 사용하면 이 문제를 간단하게 해결할 수 있다.

# ln mydata.txt /home/dragona 
이제 한쪽에서 파일을 수정해보자. 다른 쪽도 그대로 수정된 내용이 반영되어 있음을 확인할 수 있을 것이다. ls -i 로 확인해보면 두개의 파일이 동일한 inode를 가지고 있음을 확인할 수 있을 것이다. 이것을 링크라고 하며, 위에서와 같이 inode를 공유해서 사용하는 것을 하드 링크 라고 한다. 이해하기 쉽게 그림으로 나타내보자면 다음과 같다.

inode.png

file_name 1과 file_name2 가 서로동일한 inode를 가리키고 있음을 확인할 수 있다. 이러한 하드링크로 얻을 수 있는 장점은 데이터를 공유할 수 있다는 것 외에, 디스크를 아낄 수 있다는 장점도 가진다. 데이터를 직접복사하는게 아니기 때문이다. 원본은 하나이고 inode 만 공유할 뿐이다. 하드링크를 하나 생성하면 inode 공유 카운터가 1증가할 뿐이다. ls -al 로 mydata.txt 원본파일의 정보를 확인해 보자
# ls -al mydata.txt 
-rw-r----- 2 yundream yundream 192 2007-11-26 23:57 mydata.txt
하드링크 카운터가 하나 증가해서 2가 되어 있는걸 확인할 수 있을 것이다. 파일을 하나 지우고 나서 ls 결과를 보면 카운터가 하나 줄어서 1이 되는걸 확인할 수 있을 것이다.

하드링크를 사용할 때, 주의해야할 점이 있다. 하드링크는 inode 를 가리킨다. 이 때, inode 는 하나의 장치에서만 유일하므로 다른 장치로의 하드링크는 불가능 하다는 점이다. 왜냐하면 다른 장치에서 유일하다는 것을 보장할 수 없기 때문이다. 이런 경우에는 심볼릭링크를 사용해야 할 것이다.

심볼릭 링크

이와 달리 심볼릭 링크는 별도의 inode를 가지는 파일로 원본파일에 대한 inode와 함께 장치 정보까지를 가지고 있다. 어떤파일에 대한 inode와 장치정보를 알고 있다면, 전 시스템에서 유일한 파일을 가리킬 수 있기 때문에 장치에 관계없이 링크를 걸 수 있게 된다.

inode2.png

그럼 mydata.txt 를 원본파일로 하는 심볼릭링크 mydata2.txt를 만들어 보도록 하자. ln 명령에 -s옵션을 주면 심볼릭링크를 생성할 수 있다.
# ln -s mydata.txt mydataln.txt 
이제 -i 옵션을 이용해서 두개 파일의 inode를 비교해 보면 서로 다른 별개의 inode를 유지하고 있음을 알 수 있을 것이다. ls -l 을 이용해서 심볼릭링크가 가리키는 원본파일의 이름을 얻어올 수 있다.

# ls -l mydataln.txt  
lrwxrwxrwx 1 yundream yundream 10 2007-11-28 01:49 mydataln.txt -> mydata.txt

출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Book_LSP/ch03_Env

'It's my study ^^ 과연' 카테고리의 다른 글

파일객체와 파일지시자 비교  (0) 2007.12.21
open, fopen의 차이점  (0) 2007.12.18
FAT 파일 시스템(File System)  (0) 2007.12.17
TCP 헤더 구조  (0) 2007.12.15
open  (0) 2007.12.15
[2007 IT히트상품] 인체공학 디자인 매력 한달만에 25만대 판매
휴대폰 팬택계열 '돌핀슬라이드'
 



팬택계열(부회장 박병엽)이 지난 10월 중순 출시한 스카이 `돌핀슬라이드'(IM-U220, IM-U220K)는 출시 한 달여 만에 약 25만대(11월말 기준)가 판매되며 3G 시장에서 `돌풍'을 일으키고 있다. 일 개통량이 3000∼4000대 육박하는 판매실적을 기록하며 하반기부터 본격화된 3G폰 전쟁에서 선봉장 역할을 톡톡히 하고 있다.

돌핀슬라이드는 평평한 슬라이드폰에 5.8도의 각도를 더해, 살아 숨쉬며 힘차게 뛰어오르는 돌고래의 모양을 구현한 3G폰이다. 애칭도 돌고래 디자인을 따라 `돌핀' 슬라이드로 붙여졌다. `3G' `영상통화' 등 자칫 차갑게 느껴질 수 있는 첨단 IT제품에 사랑스러운 디자인과 정이 가는 애칭을 더한 것이 성공 요인 중 하나다.

또 손에 쥐었을 때 착 감기는 뛰어난 `손맛'과 슬라이드가 올라가면 뺨에 밀착되는 인체공학적 디자인이 사용편의성을 높여 사랑을 받고 있다.


여기에 2대의 양철 로봇이 서로에게 다가가지만 직선으로 만들어져 안아 주지 못하는 안타까운 상황을 담은 돌핀슬라이드 `로봇편' 광고가 소비자들의 많은 사랑을 받으며 판매진작에 크게 기여하고 있다. `곡선'이라는 제품의 특징을 `따뜻하게 감싸 안아 주는 스킨십'으로 재해석한 것이다



출처 : http://www.dt.co.kr/contents.html?article_no=2007121402014531686002

'It's IT > It's mobile' 카테고리의 다른 글

Mobile Network Code  (0) 2007.12.07
구글 안드로이드 SDK  (0) 2007.11.14
WINC와 Callback URL SMS 개념잡기  (0) 2007.08.17
이동통신 주요 시스템 개념  (0) 2007.08.17
HLR(Home Location Register)  (0) 2007.08.17

드디어 오늘 구글의 안드로이드 SDK가 떴습니다.

http://code.google.com/android/

그리고 아래 URL에서는 구글폰의 UI 샘플도 볼 수 있습니다.


http://www.engadget.com/photos/a-visual-tour-of-androids-ui/


관심있는 사람들은 SDK 받아다가 한번 어플 만들어보는 것도 재미있을 거 같군요.
그리고 좋은 아이디어 있으면 제대로 한번 만들어 보세요.
총 상금 1000만 달러가 걸린 대회도 있습니다.

Android Developer Challenge( http://code.google.com/android/adc.html )

앞으로 재미있는 일들이 더 많을 거 같습니다.





Installing the SDK

This page describes how to install the Android SDK and set up your development environment. If you haven't downloaded the SDK yet, you can use the link below to get started.

Contents

System and Software Requirements
Installing the SDK
Installing the Eclipse Plugin (ADT)
Developing Android Applications on Eclipse
Developing Android Applications with Other IDEs and Tools
Debugging
Debug and Test Settings on the Device
Top Debugging Tips
Building and Installing an Android Application
Removing an Android Application
Eclipse Tips

System and Software Requirements

To develop Android applications using the code and tools in the Android SDK, you need a suitable development computer and development environment, as described below.

Supported Operating Systems

  • Windows XP or Vista
  • Mac OS X 10.4.8 or later (x86 only)
  • Linux (tested on Linux Ubuntu Dapper Drake)

Supported Development Environments

Installing the SDK

After downloading the SDK, unpack the .zip archive to a suitable location on your machine. For the rest of this document, we will refer to the directory where you installed the SDK as $SDK_ROOT.

Optionally, you can add $SDK_ROOT/tools to your path:

  • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look for a line that sets the PATH environment variable and add the full path to your $SDK_ROOT/tools to it. If you don't see a line setting the path, you can add one:
    • export PATH=${PATH}:<path to your $SDK_ROOT/tools>
  • On a Mac, look in your home directory for .bash_profile and proceed as for Linux. You can create the .bash_profile, if you haven't already set one up on your machine.
  • On Windows, right click on My Computer, and select Properties. Under the Advanced tab, hit the Environment Variables button, and in the dialog that comes up, double-click on Path under System Variables, and add the full path to the tools/ directory under $SDK_ROOT to it.

Adding $SDK_ROOT/tools to your path lets you run Android Debug Bridge (adb) and the other command line tools without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.

Installing the Eclipse Plugin (ADT)

If you will be using the Eclipse IDE as your environment for developing Android applications, you can install a custom plugin called Android Development Tools (ADT), which adds integrated support for Android projects and tools. The ADT plugin includes a variety of powerful extensions that make creating, running, and debugging Android applications faster and easier.

If you will not be using the Eclipse IDE, you do not need to download or install the ADT plugin.

To download and install the ADT plugin, set up an Eclipse remote update site as described in the steps below.

  1. Start Eclipse, then select Help > Software Updates > Find and Install....
  2. In the dialog that appears, select Search for new features to install and press Next.
  3. Press New Remote Site.
  4. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: https://dl-ssl.google.com/android/eclipse/. Press OK.
  5. You should now see the new site added to the search list (and checked). Press Finish.
  6. In the subsequent Search Results dialog box, select the checkbox for Android Plugin > Eclipse Integration > Android Development Tools and press Next.
  7. Read the license agreement and then select Accept terms of the license agreement, if appropriate. Press Next.
  8. Press Finish.
  9. The ADT plugin is not signed; you can accept the installation anyway by pressing Install All.
  10. Restart Eclipse.
  11. After restart, update your Eclipse preferences to point to the SDK root directory ($SDK_ROOT):
    1. Select Window > Preferences... to open the Preferences panel. (Mac OS X: Eclipse > Preferences)
    2. Select Android from the left panel.
    3. For the SDK Location in the main panel, press Browse... and find the SDK root directory.
    4. Press Apply, then OK

Updating the ADT Plugin

To update the ADT plugin to the latest version, follow these steps:

  1. Select Help > Software Updates > Find and Install....
  2. Select Search for updates of the currently installed features and press Finish.
  3. If any update for ADT is available, select and install.

Alternatively,

  1. Select Help > Software Updates > Manage Configuration.
  2. Navigate down the tree and select Android Development Tools <version>
  3. Select Scan for Updates under Available Tasks.

Developing Android Applications on Eclipse

To begin developing Android applications in the Eclipse IDE, you first create an Android project and then set up a launch configuration. After that, you can write, run, and debug your application.

The sections below provide instructions assuming that you have installed the ADT plugin in your Eclipse environment. If you haven't installed the ADT plugin, you should do that before using the instructions below. See the Installing the Eclipse Plugin (ADT) for more information.

Creating an Android Project

The ADT plugin provides a New Project Wizard that you can use to quickly create an Eclipse project for new or existing code. To create the project, follow these steps:

  1. Select File > New > Project
  2. Select Android > Android Project, and press Next
  3. Select the contents for the project:
    • Select Create new project in workspace to start a project for new code.

      Enter the project name, the base package name, the name of a single Activity class to create as a stub .java file, and a name to use for your application.

    • Select Create project from existing source to start a project from existing code. Use this option if you want to build and run any of the sample applications included with the SDK. The sample applications are located in the samples/ directory in the SDK.

      Browse to the directory containing the existing source code and click OK. If the directory contains a valid Android manifest file, the ADT plugin fills in the package, activity, and application names for you.

  4. Press Finish.

The ADT plugin creates the these folders and files for you as appropriate for the type of project:

  • src/   A folder that includes your stub .java Activity file.
  • res/   A folder for your resources.
  • AndroidManifest.xml   The manifest for your project.

Creating a Launch Configuration

Before you can run and debug your application in Eclipse, you must create a launch configuration for it. A launch configuration specifies the project to launch, the Activity to start, the emulator options to use, and so on.

To create a launch configuration for the application, follow these steps:

  1. Select Run > Open Run Dialog... or Run > Open Debug Dialog... as appropriate.
  2. In the project type list on the left, right-click Android Application and select New.
  3. Enter a name for your configuration.
  4. On the Android tab, browse for the project and Activity to start.
  5. On the Emulator tab, set the desired screen and network properties, as well as any other emulator startup options.
  6. You can set additional options on the Common tab as desired.
  7. Press Apply to save the launch configuration, or press Run or Debug (as appropriate).

Running and Debugging an Application

Once you've set up the project and launch configuration for your application, you can run or debug it as described below.

From the Eclipse main menu, select Run > Run or Run > Debug as appropriate, to run or debug the active launch configuration.

Note that the active launch configuration is the one most recently selected in the Run configuration manager. It does not necessarily correspond to the application that is selected in the Eclipse Navigation pane (if any).

To set or change the active launch configuration, use the Run configuration manager, which you can access through Run > Open Run Dialog... or Run > Open Debug Dialog....

Running or debugging the application triggers these actions:

  • Starts the emulator, if it is not already running.
  • Compiles the project, if there have been changes since the last build, and installs the application on the emulator.
  • Run starts the application.
  • Debug starts the application in "Wait for debugger" mode, then opens the Debug perspective and attaches the Eclipse Java debugger to the application.

Developing Android Applications with Other IDEs and Tools

The recommended way to develop an Android application is to use Eclipse with the Android plugin. This plugin provides editing, building, and debugging functionality integrated right into the IDE. However, the SDK includes tools to enable you to develop with other IDEs, including intelliJ (or if you'd rather use Eclipse without the plugin).

Creating an Android Project

The Android SDK includes activityCreator, a program that generates a number of stub files for your project, as well as a build file. You can use the program to create an Android project for new code or from existing code, such as the sample applications included in the SDK. For Linux and Mac, the SDK provides activityCreator.py, a Python script, and for Windows, activityCreator.bat, a batch script. Regardless of platform, you can use activityCreator in the same way.

To run activityCreator and create an Android project, follow these steps:

  1. In the command line, change to the tools/ directory of the SDK and create a new directory for your project files. If you are creating a project from existing code, change to the root folder of your application instead.
  2. Run activityCreator. In the command, you must specify a fully-qualified class name as an argument. If you are creating a project for new code, the class represents the name of a stub class that the script will create. If you are creating a project from existing code, you must specify the name of one Activity class in the package. Command options for the script include:

    • --out <folder> which sets the output directory. By default, the output directory is the current directory. If you created a new directory for your project files, use this option to point to it.
    • --ide intellij, which generates IntelliJ IDEA project files in the newly created project

Here's an example:

		~/android_linux_sdk/tools$ ./activityCreator.py --out myproject your.package.name.ActivityName
package: your.package.name
out_dir: myproject
activity_name: ActivityName
~/android_linux_sdk/tools$

The activityCreator script generates the following files and directories (but will not overwrite existing ones):

  • AndroidManifest.xml The application manifest file, synced to the specified Activity class for the project.
  • build.xml An Ant file that you can use to build/package the application.
  • src/your/package/name/ActivityName.java The Activity class you specified on input.
  • your_activity.iml, your_activity.ipr, your_activity.iws   [only with the -ide intelliJ flag] intelliJ project files.
  • res/   A directory to hold resources.
  • src/    The source directory.
  • bin/    The output directory for the build script.

You can now move your folder wherever you want for development, but keep in mind that you'll have to use the adb program in the tools/ folder to send files to the emulator, so you'll need access between your solution and the tools/ folder.

Also, you should refrain from moving the location of the SDK directory, since this will break the build scripts (they will need to be manually updated to reflect the new SDK location before they will work again).

Building an Android Application

Use the Ant build.xml file generated by activityCreator to build your application.

  1. If you don't have it, you can obtain Ant from the Apache Ant home page. Install it and make sure it is on your executable path.
  2. Before calling Ant, you need to declare the JAVA_HOME environment variable to specify the path to where the JDK is installed.
  3. Note: When installing JDK on Windows, the default is to install in the "Program Files" directory. This location will cause ant to fail, because of the space. To fix the problem, you can specify the JAVA_HOME variable like this: set JAVA_HOME=c:\Prora~1\Java\. The easiest solution, however, is to install JDK in a non-space directory, for example: c:\java\jdk1.6.0_02.

  4. If you have not done so already, follow the instructions for Creating a New Project above to set up the project.
  5. You can now run the Ant build file by simply typing ant in the same folder as the build.xml file for your project. Each time you change a source file or resource, you should run ant again and it will package up the latest version of the application for you to deploy.

Running an Android Application

To run a compiled application, you will upload the .apk file to the /data/app/ directory in the emulator using the adb tool as described here:

  1. Start the emulator (run $SDK_HOME/tools/emulator from the command line)
  2. On the emulator, navigate to the home screen (it is best not to have that application running when you reinstall it on the emulator; press the Home key to navigate away from that application).
  3. Run adb install myproject/bin/<appname>.apk to upload the executable. So, for example, to install the Lunar Lander sample, navigate in the command line to $SDK_ROOT/sample/LunarLander and type ../../tools/adb install bin/LunarLander.apk
  4. In the emulator, open the list of available applications, and scroll down to select and start your application.

Note: When you install an Activity for the first time, you might have to restart the emulator before it shows up in the application launcher, or other applications can call it. This is because the package manager usually only examines manifests completely on emulator startup.

Attaching a Debugger to Your Application

This section describes how to display debug information on the screen (such as CPU usage), as well as how to hook up your IDE to debug running applications on the emulator.

Attaching a debugger is automated using the Eclipse plugin, but you can configure other IDEs to listen on a debugging port to receive debugging information.

  1. Start the Dalvik Debug Monitor Server (DDMS) tool , which acts as a port forwarding service between your IDE and the emulator.
  2. Set optional debugging configurations on your emulator, such as blocking application startup for an activity until a debugger is attached. Note that many of these debugging options can be used without DDMS, such as displaying CPU usage or screen refresh rate on the emulator.
  3. Configure your IDE to attach to port 8700 for debugging. We include information on how to set up Eclipse to debug your project.

Configuring your IDE to attach to the debugging port

DDMS will assign a specific debugging port to every virtual machine that it finds on the emulator. You must either attach your IDE to that port (listed on the Info tab for that VM), or you can use a default port 8700 to connect to whatever application is currently selected on the list of discovered virtual machines.

Your IDE should attach to your application running on the emulator, showing you its threads and allowing you to suspend them, inspect their state, and set breakpoints. If you selected "Wait for debugger" in the Development settings panel the application will run when Eclipse connects, so you will need to set any breakpoints you want before connecting.

Changing either the application being debugged or the "Wait for debugger" option causes the system to kill the selected application if it is currently running. You can use this to kill your application if it is in a bad state by simply going to the settings and toggling the checkbox.

Debugging

Android has a fairly extensive set of tools to help you debug your programs:

  • DDMS - A graphical program that supports port forwarding (so you can set up breakpoints in your code in your IDE), screen captures on the emulator, thread and stack information, and many other features. You can also run logcat to retrieve your Log messages. See the linked topic for more information.
  • logcat - Dumps a log of system messages. The messages include a stack trace when the emulator throws an error, as well as Log messages. To run logcat, see the linked topic.
    ...
    I/MemoryDealer( 763): MemoryDealer (this=0x54bda0): Creating 2621440 bytes heap at 0x438db000
    I/Logger( 1858): getView() requesting item number 0
    I/Logger( 1858): getView() requesting item number 1
    I/Logger( 1858): getView() requesting item number 2

    D/ActivityManager( 763): Stopping: HistoryRecord{409dbb20 com.google.android.home.AllApps}
    ...
  • Android Log- A logging class to print out messages to a log file on the emulator. You can read messages in real time if you run logcat on DDMS (covered next). Add a few logging method calls to your code.

    To use the Log class, you just call Log.v() (verbose), Log.d() (debug), Log.i() (information), Log.w() (warning) or Log.e (error) depending on the importance you wish to assign the log message.

    Log.i("MyActivity", "MyClass.getView() — Requesting item number " + position)

    You can use logcat to read these messages

  • Traceview - Android can save a log of method calls and times to a logging file that you can view in a graphical reader called Traceview. See the linked topic for more information.
  • Eclipse plugin - The Eclipse Android plugin incorporates a number of these tools (ADB, DDMS, logcat output, and other functionality). See the linked topic for more information.
  • Debug and Test Device Settings - Android exposes several settings that expose useful information such as CPU usage and frame rate. See Debug and Test Settings on the Emulator below.

Also, see the Troubleshooting section of the doc to figure out why your application isn't appearing on the emulator, or why it's not starting.

Debug and Test Settings on the Device

Android lets you set a number of settings that will make it easier to test and debug your applications. To get to the development settings page on the emulator, go to Dev Tools > Development Settings. This will open the development settings page with the following options (among others):

  • Debug app   Selects the application that will be debugged. You do not need to set this to attach a debugger, but setting this value has two effects:
    • It will prevent Android from throwing an error if you pause on a breakpoint for a long time while debugging.
    • It will enable you to select the Wait for Debugger option to pause application startup until your debugger attaches (described next).
  • Wait for debugger   Blocks the selected application from loading until a debugger attaches. This way you can set a breakpoint in onCreate(), which is important to debug the startup process of an Activity. When you change this option, any currently running instances of the selected application will be killed. In order to check this box, you must have selected a debug application as described in the previous option. You can do the same thing by adding waitForDebugger() to your code.
  • Immediately destroy activities   Tells the system to destroy an activity as soon as it is stopped (as if Android had to reclaim memory).  This is very useful for testing the onFreeze(Bundle) / onCreate(android.os.Bundle) code path, which would otherwise be difficult to force. Choosing this option will probably reveal a number of problems in your application due to not saving state.
  • Show screen updates    Flashes a momentary pink rectangle on any screen sections that are being redrawn. This is very useful for discovering unnecessary screen drawing.
  • Show CPU usage   Displays CPU meters at the top of the screen, showing how much the CPU is being used. The top red bar shows overall CPU usage, and the green bar underneath it shows the CPU time spent in compositing the screen. Note: You cannot turn this feature off once it is on, without restarting the emulator.
  • Show screen FPS    Displays the current frame rate. Mostly useful for games to see the overall frame rate they are achieving. Note: You cannot turn this feature off once it is on without restarting the emulator.
  • Show background   Displays a background pattern when no activity screens are visible. This typically does not happen, but can happen during debugging.

These settings will be remembered across emulator restarts.

Top Debugging Tips

Quick stack dump
To obtain a stack dump from emulator, you can log in with adb shell, use "ps" to find the process you want, and then "kill -3 ". The stack trace appears in the log file.
Displaying useful info on the emulator screen
The device can display useful information such as CPU usage or highlights around redrawn areas. Turn these features on and off in the developer settings window as described in Setting debug and test configurations on the emulator.
Getting system state information from the emulator (dumpstate)
You can access dumpstate information from the Dalvik Debug Monitor Service tool. See dumpsys and dumpstate on the adb topic page.
Getting application state information from the emulator (dumpsys)
You can access dumpsys information from the Dalvik Debug Monitor Service tool. See dumpsys and dumpstate on the adb topic page.
Getting wireless connectivity information
You can get information about wireless connectivity using the Dalvik Debug Monitor Service tool. From the Device menu, select "Dump radio state".
Logging Trace Data
You can log method calls and other tracing data in an activity by calling android.os.Debug.startMethodTracing(). See Running the Traceview Debugging Program for details.
Logging Radio Data
By default, radio information is not logged to the system (it is a lot of data). However, you can enable radio logging using the following commands:
adb shell
logcat -b radio
Running adb
Android ships with a tool called adb that provides various capabilities, including moving and syncing files to the emulator, forwarding ports, and running a UNIX shell on the emulator. See Using adb for details.
Getting screen captures from the emulator
Dalvik Debug Monitor Server (DDMS) can capture screenshots from the emulator.
Using debugging helper classes
Android provides debug helper classes such as util.Log and Debug for your convenience.

Building and Installing an Android Application

Android requires custom build tools to be able to properly build the resource files and other parts of an Android application. Because of this, you must have a specialized build environment for your application.

Custom Android compilation steps include compiling the XML and other resource files, and creating the proper output format. A compiled Android application is an .apk file, which is a compressed file containing .dex files, resource files, raw data files, and other files. You can create a properly structured Android project either from scratch, or from existing source files.

Android does not currently support development of third party applications in native code (C/C++).

The recommended way to develop an Android application is to use Eclipse with the Android plugin, which provides support for building, running, and debugging Android applications.

If you have another IDE, Android provides tools for other IDEs to build and debug Android applications, but they are not as integrated.

Removing an Android Application

To remove an application that you have installed on the emulator, you will need to run adb and delete the .apk file you sent to the emulator when you installed it. Use adb shell to drop into a shell on the device as described in the linked topic, navigate to data/app/, and then remove the file using rm your_app.apk.

Eclipse Tips

Executing arbitrary Java expressions in Eclipse

You can execute arbitrary code when paused at a breakpoint in Eclipse. For example, when in a function with a String argument called "zip", you can get information about packages and call class methods. You can also invoke arbitrary static methods: for example, entering android.os.Debug.startMethodTracing() will start dmTrace.

Open a code execution window, select Window>Show View>Display from the main menu to open the Display window, a simple text editor. Type your expression, highlight the text, and click the 'J' icon (or CTRL + SHIFT + D) to run your code. The code runs in the context of the selected thread, which must be stopped at a breakpoint or single-step point. (If you suspend the thread manually, you have to single-step once; this doesn't work if the thread is in Object.wait().)

If you are currently paused on a breakpoint, you can simply highlight and execute a piece of source code by pressing CTRL + SHIFT + D.

You can highlight a block of text within the same scope by pressing ALT +SHIFT + UP ARROW to select larger and larger enclosing blocks, or DOWN ARROW to select smaller blocks.

Here are a few sample inputs and responses in Eclipse using the Display window.

Input Response
zip (java.lang.String) /work/device/out/linux-x86-debug/android/app/android_sdk.zip
zip.endsWith(".zip") (boolean) true
zip.endsWith(".jar") (boolean) false

You can also execute arbitrary code when not debugging by using a scrapbook page. Search the Eclipse documentation for "scrapbook".

Running DDMS Manually

Although the recommended way to debug is to use the ADT plugin, you can manually run DDMS and configure Eclipse to debug on port 8700. (Note: Be sure that you have first started DDMS).

WINC와 Callback URL SMS 개념

휴대폰 이용자들이 이동통신 사업자들의 무선인터넷 포털을 거치지 않고 다른 컨텐츠 메뉴에 바로 접속할 수 있도록 무선인터넷 주소 서비스인 WINC(Wireless Internet Number of Contents)와 Callback URL SMS 서비스가 제공되고 있습니다.


Callback URL SMS가 무엇인지를 설명하겠습니다.

인터넷 기업들과 컨텐츠 업체들이 이동통신 사업자들에게 무선인터넷망 개방시 우선적으로 요구했었던 것이 Callback URL SMS를 허용해 달라는 것입니다.


“Callback URL SMS”는 단문메세지(SMS)에 특정 싸이트의 IP 주소(URL)를 링크해서 전송하면 휴대폰 이용자는 단문메세지를 읽어보고, 확인 버튼(또는 통화 및 무선인터넷 접속 버튼)만 누르면 해당 무선인터넷 싸이트로 이동할 수 있도록하는 것입니다.


현재 이런 Callback URL SMS 서비스가 사용되는 가장 대표적인 사례는 이동통신사들의 자체 마케팅용 SMS나 “오빠…나 한가해~~~~~”라는 문구가 눈에 확 띄는 성인 스팸 메일들에서 사용 중에 있습니다.


이처럼 Callback URL SMS를 사용하게 되면 사용자들은 특정 무선인터넷 싸이트에 접속하기 위해서 이동통신사의 무선인터넷 포털을 경유하거나, 아니면 특정 무선인터넷 싸이트의 URL 주소를 외울 필요없이 수신한 SMS를 이용하여 바로 무선인터넷 싸이트로 이동할 수 있는 것입니다.


그럼 두 번째 WINC(Wireless Internet Number of Contents) 서비스에 대해 설명하겠습니다. 이 글을 읽으시면 다음 숫자들을 휴대폰으로 누른 후에 무선인터넷 접속버튼을 눌러보세요.


'It's IT > It's mobile' 카테고리의 다른 글

Mobile Network Code  (0) 2007.12.07
구글 안드로이드 SDK  (0) 2007.11.14
이동통신 주요 시스템 개념  (0) 2007.08.17
HLR(Home Location Register)  (0) 2007.08.17
이동통신 관련 주요사항 요약  (0) 2007.08.17

이동통신 주요 시스템 개념

AuC (Authentication Center)  

이동통신 망에서 가입자에 대한 인증 및 무선 통화 구간에 대한 암호화 기능을 지원(인증 키 관리)한다. 인증 및 암호화를 위하여, 자체 데이터베이스에서 가입자에 대한 전화번호, 단말기 일련번호, 인증 키 등을 관리하여, 정의된 인증 알고리즘을 수행한다.  


BSC (Base Station Controller), 제어국

여러대의 기지국(BTS)들을 관리하면서 이동교환기(MSC)와 연동하며, 일부 제어국에서는 2.5 세대/3 세대 데이터서비스를 위하여 PDSN(라우터)과 연동 기능 제공


BTS (Base station Transceiver Subsystem), 기지국

이동전화와 무선 구간으로 연결되어 이동전화를 제어하고 통화 채널을 연결시켜주는 시스템


DSCP (Data SCP)

지능망 SCP와 연동하여, 선불형 지능망 가입자에 대한 세분화된 과금을 실시간 처리

 

EIR (Equipment Identification Register)  

이동통신망에서 단말에 대한 IMEI (International Mobile Station Equipment Identity)를 저장하고 관리한다. 부적절한 이동통신 단말기를 검출하고, 이들 단말에 대한 목록을 관리함으로써 부적절한 단말에 대한 사용을 제한하는 기능을 수행한다.


GMLC (General Mobile Location Center) 

GMLC는 W-CDMA 망에서 SMLC(Serving Mobile Location Center) 및 교환기, SGSN 등과의 연동을 통해서 가입자의 위치를 수집한다. 이는 이동 가입자(휴대폰)의 LBS 서비스 플랫폼의 가입자 위치정보 요청에 의하여 가입자의 위치 정보를 수집하여, LBS 서비스 플랫폼으로 전송 기능을 수행한다.


HLR (Home Location Register), 홈위치등록기
이 동전화가입자에 대한 정보 (이동성- 현재 위치- 정보, 인증 및 부가 서비스 정보 등)를 실시간으로 관리하는 시스템으로, 교환기는 HLR에게 가입자의 현재 위치 정보를 입수하여 이동통신 가입자에 대한 착신이 가능하게 된다. 내부 데이터베이스에는 가입자에 대한 전화번호, 단말기 일련번호, 호처리 루팅 정보, 권한 정보, 각종 부가서비스 정보 등을 관리한다. 


INBH (Intelligent Billing Host)  

선불형 지능망 가입자의 데이터 호(단문 메시지, 인터넷 컨텐츠, 장문 메시지 등)에 대한 실시간 과금을 수행한다. SMSC, VAS, LMSC 등 여러 종류의 Client와 연동하여 차감 금액을 실시간으로 계산하고, 이를 지능망 SCP에 전달한다.


IPAS (IP Accounting System)  

다양한 특성을 가진 개별 서비스(IP address, 컨텐츠 내용, URL 등)에 대한 차등 과금을 수행한다. (컨텐츠 가치 중시) 데이터 망에서 전송되는 raw packet data를 실시간으로 캡쳐하고, 실시간으로 분석하여, 실시간으로 과금 처리하는 기능을 제공한다.


LMSC( Long Message Service Center), 장문메세지센터
장문 메시지 저장/전송 기능 제공한다. 단문메시지와 장문메시지의 구분 기분은 전송할 메시지가 80바이트를 넘는지의 여부이다.


MMS (Multimedia Message System), 멀티미디어메세지센터
멀티미디어 메시지 저장/전송 기능 제공


MPC (Mobile Positioning Center)
MPC 는 CDMA 망에서 측위 서버인 PDE(Positioning Determination Entity) 및 교환기와의 연동을 통해서 가입자의 위치를 수집한다. 이는 이동 가입자(휴대폰)의 LBS 서비스 플랫폼의 가입자 위치정보 요청에 의하여 가입자의 위치 정보를 수집하여, LBS 서비스 플랫폼으로 전송 기능을 수행한다.


MSC (Mobile Switching Center), 이동교환기

이동통신망의 핵심 망요소로서, 음성통화 및 각종 부가서비스를 제어하고, 통화로를 설정하며, 여러 다른 장비들 및 외부망과의 연결기능을 제공한다. 즉, MSC는 이동통신 가입자에게 회선교환 서비스 및 통화채널 전환 기능을 제공하는 교환기이다.


SMSC (Short Message Service Center), 단문메세지센터
단문 메시지 저장/전송 기능 제공한다. 단문메시지와 장문메시지의 구분 기분은 전송할 메시지가 80바이트를 넘는지의 여부이다.


VLR (Visitor Location Register)

방문 가입자에 대한 호처리를 위한 위치레지스터 시스템



□ 지능망

지능망(Intelligent Network)이란 이동통신교환기(MSC)의 소프트웨어 변경 없이 새로운 서비스를 이동통신망에 적용할 수 있는 망 환경을 의미한다. 지능망이란 용어는 CDMA의 경우 WIN이란 규격, GSM의 경우 CAMEL이란 규격으로 발전되었다.

 
Dual Stack SCP (CDMA WIN & W-CDMA CAP)  
CDMA 지능망 서비스(WIN)와 W-CDMA 지능망 서비스(CAMEL)를 하나의 플랫폼에서 동시에 제공하는 SCP 시스템이다.  이 시스템은 CDMA 서비스와 W-CDMA 서비스를 동시에 제공하는 사업자가 망 투자비를 절약할 수 있는 솔루션이다.  


IP (Intelligent Peripheral)  

지능망 서비스에 필요한 각종 안내 멘트를 제공한다. 지능망 서비스 진행을 위한 비밀번호, 서비스 선택 등의 각종 정보를 가입자로부터 수집한다.  

Parlay GW & AS / Parlay X GW & AS  
외부 서비스개발업체(3rd Party CP)들에게 표준화된 연동 규격(Open API)을 제공하여 망 플랫폼과 서비스 플랫폼의 종류에 상관없이 다양한 신규 부가 서비스들을 제공할 수 있게 해주는 차세대 지능망 솔루션이다.  
 
SCP (Service Control Point)  
지능망의 핵심 장비로써, 각종 서비스에 대한 서비스 로직을 제공한다. 즉, 이동통신 사업자의 지능망 서비스 시나리오를 실제로 수행한다. 교환기(SSP)와의 연동을 통하여 서비스 수행에 필요한 호처리를 수행하며, IP를 제어하여 가입자에게 안내방송을 제공한다.  
 
Service Node  
한 두 개의 특정 지능망 서비스를 도맡아 수행하는 시스템으로써, 해당 서비스에 대해서는 지능망의 SCP/IP/SMP의 기능을 모두 수행한다.

SMP (Service Management Point)  
고객센터와의 연동을 통하여 가입자 정보를 저장 및 관리하고, 이를 다수의 SCP에 분배한다. 통합된 운영 및 유지보수 기능을 사용하여, 다수의 SCP 및 IP에 대한 관리가 가능하도록 한다.  


□ IMS망

IP Multimedia Subsystem(IMS)는 IP를 기반으로 다양한 멀티미디어 서비스를 제공할 수 있도록 하는 core network infra이다. 사용자는 저렴한 비용으로 다양하면서 풍부한 서비스를 사용할 수 있는 사업자를 선호하게 될 것이며, 이러한 변화에 대한 정확한 해답이 바로 IMS이다.


<3GPP의 IMS 망 구조>

 

BGCF (Breakout Gateway Control Function)

PSTN 착신호에 대한 라우팅 최적화를 고려하여 적당한 MGCF를 선택

 

IBCF 
IMS 망간 연동을 위한 보안 및 NAT traversal 기능


CSCF (Call Session Control Function)

 3G 네트워크 상에서 SIP 기반의 Call Control 및 Session Handling기능을 수행하는 시스템으로 다양한 멀티미디어 서비스를 제공 가능하게 한다.


IP-CAN(IP-Connectivity Access Network)

이동 단말이 IMS 망에 접속하기 위해서는 IP-CAN을 거쳐야 한다. IP-CAN은 단말에게 패킷데이터전송을 위한 엑세스망을 말한다. 예를 들어 GPRS나 WCDMA가 될 수 있다.

 

IMS-MGW / MGW (Media Gateway)

MGW는 PSTN이나 2G/2.5G 망과 연동하기 위해서 IMS 내의 IP 패킷 형태의 미디어 데이터(RTP)를 회선 교환망의 베어러 상에 전송될 수 있는 형태로 변환하는 기능을 한다. 이 과정에서 코덱의 변환이 필요하다.


I-CSCF (Interrogating-CSCF)
I-CSCF는 망 내의 가입자에게 연결하기 위해서 들어오는 모든 호에 대해서 접점 역할 및 망 내에 로밍한 타망 가입자와의 접점 역할을 수행한다. 이러한 역할로 인해서 일반적으로 I-CSCF는 방화벽(firewall) 역할을 수행하며 사업자 망의 구성, 토폴로지 및 용량 등을 외부에 노출되지 않게 하는 은닉기능을 가질 수 있다. I-CSCF는 HSS를 조회하여서 S-CSCF를 결정하고 등록과정에서 UE에게 S-CSCF를 할당하게 된다. 또한 SIP Request를 S-CSCF로 포워딩하는 역할 및 과금 정보의 생성을 수행한다. 그리고 여러 개의 HSS가 운용되는 망에서 SLF를 조회함으로써 HSS를 결정하는 역할을 한다.
 

MGCF (Media Gateway Control Function)

MGCF는 프로토콜 변환(SIP↔ISUP 시그널링 변환)을 처리하므로 PSTN과 PLMN 또는 SS7과 IP의 종단점으로 정의할 수 있다. 이는 PSTN에서 IMS으로 들어오는 호에 대한 시그널링의 변환 및 변환된 Request 메시지를 S-CSCF로 포워딩하는 기능을 수행하고, IMS와 PSTN 간의 호 제어 시그널링에 의해서 생성되는 호의 실질적인 베어러의 연결을 위해서 MGW를 제어한다.


MRF (Multimedia Resource Function)

MRF는 IM Subsystem 상에서 다자간 멀티미디어 회의를 제어하고 미디어 데이터를 처리하는 기능을 담당한다. 주요한 기능으로는 멀티미디어 메시지 재생, 음성메일 서비스, 미디어 변환/믹싱 서비스, Transcoding 서비스를 한다. 또한 기존의 MSC가 가지고 있던 Tone 생성 및 안내방송 기능도 담당한다.


P-CSCF (Proxy-CSCF)
P- CSCF는 단말이 GPRS 액세스를 통해서 IMS에 접속할 때 처음 만나는 지점이다. 3GPP에서는 단말이 P-CSCF를 찾는데 DHCP를 이용하거나 PDP Context를 통해서 주소를 얻는 방법을 제시하고 있다.  단말로부터의 SIP Register Request를 단말의 홈 도메인의 I-CSCF로 전달하고 이 등록절차에서 S-CSCF의 주소를 저장했다가 UE로부터 S-CSCF로 향하는 SIP 메시지가 있을때 이를 S-CSCF로 포워딩한다.


S-CSCF (Serving-CSCF)
S- CSCF는 호 처리를 위한 주요기능을 수행하고,  서비스를 제공하기 위해서 관련되는 모든 기능에 대한 책임을 갖고 있다. 실제 등록된 사용자의 세션 상태관리를 하면서 제어 서비스를 수행하며, 사용자에게 서비스 자원과 관련된 정보를 제공한다. 사용자의 다이얼된 번호나 SIP URL을 통하여 착신 사용자의 홈 도메인의 I-CSCF의 주소를 얻는다.

 
SGW (Signaling Gateway)
SGW는 시그널링 프로토콜의 전송계층을 변환하는 기능을 수행한다. 즉, ISUP나 MAP과 같은 프로토콜 자체는 변환하지 않고 IP 망과 PSTN, IP 망과 기존망(2G 및 2.5G)의 전송계층을 변환하는 기능을 한다.
 
SLF (Subscription Locator Function)
망내에 HSS가 두 개 이상 운영되고 각각 별도의 주소로 인식될 때 CSCF에게 적절한 HSS의 주소를 제공
 
 

□ 데이터망

이동통신 망에서 데이터 서비스를 제공하기 위한 이동통신 인프라를 의미한 다. 음성통화를 주된 목적으로 했던 초기 휴대폰은 진화에 진화를 거듭하여 현재는 데이터 서비스 분야에서 더욱 많은 활용가치를 창출해가고 있다. 인터넷 가입자의 폭발적인 성장에 힘입어 무선 인터넷이 차세대 산업 분야로서 예견되고 있으며, 이러한 무선 인터넷 서비스를 제공하기 위한 기반 인프라를 통틀어 데이터 망이라 한다.

<데이터망 구조>
 

AAA (Authentication, Authorization, and Accounting)
2G 및 1x 패킷 데이터 망에서 가입자 인증, 가입자 권한 확인, 과금 부여의 기능을 수행하는 무선 인터넷의 필수 망 요소의 하나이다. 즉, 가입자가 핸드폰을 사용하여 무선 인터넷에 접속할 경우, 1) 해당 가입자가 적법한지, 2) 해당 가입자에게 어떤 종류의 서비스가 제공 가능한지, 3) 얼마 만큼의 데이터 서비스를 받았는지를 결정하는 시스템이다.


DRN (Data Roaming Node)  

W-CDMA망에서 해외로 로밍한 경우에도 데이터 서비스를 받을 수 있도록 해주는 시스템으로서, IM-GSN (Intermediate GRPS Serving Node)의 기능을 수행한다. 다른 PLMN 가입자의 Roaming 시 패킷 착신이 가능하도록 visited SGSN 과 home SGSN 간에 GTP 메시지를 중계하는 기능을 제공하며, 방문한 PLMN에서 동작한다.


GGSN (Gateway GPRS Support Node)

SGSN과 PDN 사이의 무선 게이트웨이 역할을 하는 GPRS 망 실체. 이 GGSN을 이용하여 이동 가입자가 PDN을 접속할 수 있다. GPRS 망에서는 외부망과 게이트웨이 역할을 담당하는 GGSN을 통하여 인터넷과 접속한다. 다시말해 GGSN은 패킷 데이터를 인터넷망으로 보내기 위한 게이트웨이 장치이다.
 

HSS (Home Subscriber Server)

HSS는 사용자에 대한 마스터 데이터베이스 역할을 수행하는 시스템으로, 2G 망의 HLR과 AuC 기능이 통합된 형태의 시스템이다. HSS는 이동성 관리, 사용자 인증 정보 생성, 서비스 Provisioning, 서비스 인증, 접속 권한부여 및 Call/Session 설정 지원 기능 등을 수행한다.

HSS는 3G HLR 기능을 모두 포함함과 동시에 IMS 가입자에 대한 정보를 관리하는 HLR의 super set이라고 볼 수 있다.

 

IWF (InterWorking Function system)

2 세대 데이터 서비스를 제공을 위한 모뎀 및 라우팅 기능 제공한다. 구형 모델의 휴대폰(예 : 흑백폰) 상에서의 데이터 서비스는 IWF를 통해서 IP 망과 연동하여 제공


PDSN (Packet Data Serving Node)

동기식 (CDMA) 1x 망에서 데이터 서비스를 제공하기 위해 네트워크 자원의 할당과 단말의 이동성을 관리하고 과금 정보를 수집해서 AAA로 전달한다. H/W 측면에서 보면 PDSN은 2.5 세대 및 3 세대 데이터 서비스를 제공하기 위한 라우터이다. 현재 대다수 컬러폰들이 PDSN과 연동한다. 


SGSN (Support GPRS Serving Node)

SGSN은 비동기망(W-CDMA, UMTS, GPRS등)에서 패킷 데이터 처리를 수행하는 시스템으로, 음성 서비스 분야의 교환기에 해당하는 역할을 수행한다. 이는 GGSN과 함께 GPRS 네트워크에서 초고속 인터넷 서비스를 가능케 하는 시스템 요소이다.

 

HLR

Home Location Register(HLR)는 이동 통신 가입자 정보(위치정보, 인증정보, 서비스 정보, 권한 및 부가 정보 등)를 실시간으로 관리하는 이동통신 망의 기본 시스템이다. MSC/VLR, AC, SMSC, Feature Server와의 연동을 통해 발/착신, 인증, 단문 메시지, Packet 전송, 위치정보 및 지능 망 서비스를 제공한다.
 

아래는 HLR의 기본적인 특징에 대해 요약한 것이다.

- 이동 통신 가입자의 위치 정보 관리 
- 가입자의 단말기 전원 상태 관리
- 부가 서비스 설정 상태 관리
- HLR과 연동하는 시스템에 가입자 정보 제공

이동통신 각종 식별번호 개념잡기(IMSI, MSISDN, MIN등)

참고: TTA 용어사전 (http://word.tta.or.kr/)

IMSI (International Mobile Station Identity), 국제 이동국 식별 번호   
GSM 서비스 가입 시에 이동 단말기에 할당되는 고유 15자리 식별 번호. 이 번호는 이동 국가 코드, 이동 네트워크 코드, 이동 가입자 식별 번호 및 국가 이동 가입자 식별 번호로 구성된다. IMSI는 다음과 같은 구조를 지닌다.
MCC (Mobile Conuntry Code)
MNC (Mobile Network Code)
MSIN (Mobile Subscriber Identifier Number)
 
MCC+MNC는 이동전화 가입자의 Home Network를 전세계 어떠한 망에서든지 유일하게 식별한다. 다 시말해, IMSI는 Visited Network(로밍 서비스를 제공하는 타 Network)가 최대 처음 6자리를 분석해서 Home Network를 조회할 수 있는 구조로 되어 있다. MSIN은 MCC와 MNC가 주어진 경우, 이동전화 단말기를 유일하게 식별한다.

 

 

TMSI (Temporary Mobile Subscriber Identity), 임시 이동 가입자 식별 번호   


이동 통신 시스템에서 이동국을 식별하는 임시 식별 번호. 임시 식별 번호는 홈 위치 레지스터(HLR)의 인증 센터(AC/Auc)에 의해 부여되며, 이동국과 이동 전화 교환국(MSC) 사이에서 보안상 국제 이동국 식별 번호(IMSI: International Mobile Station Identity) 대신 사용된다.


이는 Air 인터페이스 상에 IMSI 노출을 최소화하기 위하여 최초 위치 등록시 IMSI 대신에 TMSI를 가입자별로 핟당한다.


가입자 식별을 보호하기 위해 인증과 암호화를 거쳐 이동국에 전송되며, 이동국 통신권 내에서 유효하고 통신권 외에서는 추가적으로 위치 영역 식별(LAI: Location Area Identification)이 필요하다.

 
 
MIN (Mobile Identification Number), 이동국 식별 번호  
 
이동국(이동 전화 단말기)에 할당된 10자리 전화번호를 디지털로 표시하는 34비트의 숫자. 단말기의 지정 번호(일명 전화번호)로서 MIN 1과 MIN 2가 있다.
 
MIN 1은 단말기에 할당된 7개 디짓의 전화번호로 24개 비트로 구성되며, MIN 2는 3개 디짓의 지역 번호로 10개의 비트로 구성된다. 011-YYY-XXXX에서 MIN 1은 YYY-XXXX이고 MIN 2는 011이다. 
 
[참고] MIN은 원래 북미의 이동전화 단말기를 식별하기 위한 것이었다. 10자리의 MIN은 국제 로밍을 제공하기 위해 필요한 추가정보를 포함할 수 없다는 점 때문에 IMSI 체계가 필요하게 되었다. IMSI 는 GSM 표준에서 사용된다. (ITU-T)
 
 
MSISDN (Mobile Station International ISDN Number), 이동국 국제 ISDN 번호
 
WCDMA IMT-2000에서는 가입자에게 두 가지 번호를 부여한다. USIM 카드에 IMSI와 단말기에 MSISDN이라는 것이 부여되는데, 이번에 정부에서 010X로 부여한 것이 바로 MSISDN이고 이 MSISDN에는 실제로는 국가코드(우리나라 = 82)가 들어가 있는 상태이다.
 
따라서 가입자는 상대방이 어디에 있는지 전혀 예상하지 않고서도 별도의 다이얼링 없이 전화를 걸어 상대방이 다른 국가에 있다는 것을 알 수 있다. 하나의 IMSI에 4개의 MSISDN을 가질 수 있다.
 
GSM 네트웍에서의 전화번호란 MSISDN(Mobile Station Integrated System Digital Network)을 뜻하며 국가코드(Country Code), 네트웍코드(NetworkCode) 그리고 디렉토리번호(Directory Number)로 구성되어 있다.
 
반면에 IS-41C 네트웍에서의 전화번호란 휴대폰의 MIN(Mobile Identification Number)를 뜻하며 지역번호(Area Code)와 전화번호(Phone Number)로 구성되어 있고 (NPA) Nxx-xxxx 형태를 갖고 있다. MDN (Mobile Directory Number)와 동일한 것으로, 가입자 전화번호를 의미한다.
 
 
IMEI (International Mobile Equipment Identity), 국제 이동 단말기 식별 번호
 
GSM 표준에서 제조업체에 의해서 단말의 하드웨어 제작시 할당되는 최대 15자리 하드웨어 번호를 말하며, 이 번호는 형식 승인 코드, 최종 조합 코드 및 일련 번호를 포함하여 15자리로 구성된다.  이를 통해 GSM 이동 단말기가 서로를 고유하게 식별할 수 있다.
 
-- while list : 정상적인 사용이 가능한 단말들의 분류
-- black list : 호를 금지시켜야 하는 단말들의 분류
-- gray list : 호를 금지하지는 않지만, 추적이 필요한 단말들의 분류
 
 
PIN (Personal Identification Number), 개인 식별 번호
 
특정 기능이나 정보의 접근을 위해 모든 GSM 기반 전화기에서 사용되는 코드로, PIN 가입과 동시에 제공한다.

'It's IT > It's mobile' 카테고리의 다른 글

구글 안드로이드 SDK  (0) 2007.11.14
WINC와 Callback URL SMS 개념잡기  (0) 2007.08.17
이동통신 주요 시스템 개념  (0) 2007.08.17
HLR(Home Location Register)  (0) 2007.08.17
이동통신 관련 주요사항 요약  (0) 2007.08.17

R&TTE와 함께 2000년 4월 8일자로 그 첫 발을 내딛은 GCF는 네트워크 사업자들과 단말기 제조업자들 간 협력의 산물로서, 2세대와 3세대 무선 통신 단말기가 네트워크내에서 잘 운용됨을 보증하기 위한 프로그램을 제공합니다. 

전 세계적으로 규격의 통합에 대한 요구가 높아지고 있는 가운데, GCF는 유럽 내 각국의 규정을 반영한 Global standard를 제공함으로써 이러한 요구에 가장 잘 부흥하고 있습니다. 제조자는 GCF 인증을 통해 해당 단말기가 세계적으로 인정되는 기술 요구사항에 부합하는 지를 검증 받아 그 적합성을 증명할 수 있게 되어, 결과적으로 제조자, 사업자 및 사용자 모두를 만족시킬 수 있습니다.

GCF는 제조자에게 있어 선택사항이긴 하지만, 네트워크 사업자나 사용자들의 요구가 커짐에 따라 필수적인 사항으로 인식되고 있습니다.



.관련사이트 http;//gcf.gsm.org

.GCF:Global Certification Forum


Global certification forum PRDs

.GCF-CC , Certification Criteria

+ Recent posts