오늘도 출근길에 어김없이 스마트폰을 만지작 만지작-_-
스마트폰 중독도 있겠지만 뱅킹부터 업무까지 스마트폰으로 할 수 있는 일이 상당합니다
최근에는 스마트워치(smart watch)와 같은 웨어러블(wearable) 기기도 너무 이쁘게 나오네요
스마트폰의 시초는 1992년 IBM에서 제작한 사이먼(Simon)으로 보고 있는데
사이먼은 달력, 주소록, 계산기, 이메일 기능 등을 보유하였고
이후 노키아(Nokia)에서 노키아 9000
2002년에는 마이크로소프트에서 포켓PC에서 작동하는 PDA폰이 출시되었습니다
우리가 잘 아는 아이폰(iPhone)과 안드로이드폰(Android Phone)은 각각 2007, 2008년에 시작되었고
2017년 말부터 지원을 중단한 마이크로소프트 윈도폰7은 2010년에 시작되었습니다
이 외에도 점유율이 미미한 파이어폭스OS, 우분투 터치(Ubuntu Touch),
팜OS(Palm OS), 블랙베리(BlackBerry) 등이 있습니다
오늘의 주제인 안드로이드에 대해 알아보기 전에
잠깐 아이폰과 안드로이드폰의 개발 환경을 비교해보면 다음과 같습니다
구분 | 안드로이드 | 아이폰 |
개발 언어 | Java, Kotlin, C++ | Objective C, Swift |
개발 운영체제 | Windows, Linux, Mac OS | Mac OS |
개발 툴 | Eclipse, Android Studio | Xcode |
지원 장치 | 안드로이드폰, 안드로이드 태블릿, 안드로이드 스마트워치, 안드로이드 TV | 아이폰, 아이팟, 아이패드, 애플 워치 |
대표 제품 | 삼성 갤럭시 S/Note 시리즈 | 아이폰 시리즈 |
안드로이드는 구글(Google)이 2007년 안드로이드사를 인수하면서 시작되었고
구글은 모바일 장치용 운영체제를 무료로 공개하기 위해
OHA(Open Handset Alliance)라는 컨소시엄을 주체적으로 구성해서
안드로이드를 개발하였습니다
안드로이드의 특징을 살펴보면 다음과 같습니다
1) 안드로이드의 핵심 커널(Kernel)은 리눅스(Linux) 커널에서 모바일용으로 적합한 내용을 추출하여 필요한 기능을 추가 제작한 것입니다. |
2) 안드로이드 애플리케이션 개발 언어로는 Java를 사용하고 Java에 최적화된 통합 개발 도구인 Eclipse 및 Android Studio를 사용함으로써 고효율의 생산성을 무료로 제공합니다. 더 나아가 높은 수준의 애플리케이션을 제작하기 위한 NDK(Native 하Development Kit)도 제공하여 C, C++ 기반으로 개발하여 빠른 성능과 세밀한 조작까지도 가능하게 되었습니다. |
3) 안드로이드 SDK에 SQLite, OpenGL 등 많은 라이브러리를 포함하고 있어 개발을 용이하게 할 수 있습니다. |
4) 오픈 소스를 지향하기 때문에 운영체제부터 관련 문서, 개발 도구 등 거의 모든 것을 무료로 사용할 수 있습니다. |
5) 지속적인 업그레이드를 제공합니다. |
위의 그림은 안드로이드의 구조를 그린 것인데
자세한 내용은 학습을 진행하면서 차차 알아갈 것입니다
자 이제 안드로이드 스튜디오를 설치해보겠습니다
아래의 링크로 들어가셔서 다운로드를 진행하세요~
https://developer.android.com/studio
설치가 완료되고 안드로이드 스튜디오를 실행하고
Start a new Android Studio project
클릭하여 새로운 프로젝트를 하나 생성하겠습니다
Empty Activity로 패키지명과 이름은 적당한걸로!!
생성하시면 아래쪽에 뭔가 엄청 바쁘게 작업이 진행되고 있습니다
작업이 끝나고 나면 위의 그림과 같은 화면이 등장합니다
안드로이드 스튜디오는 빌드 자동화 도구인
그래들(Gradle)을 사용해서 앱의 의존 관계(dependency)와
컴파일을 처리하고 관리하고
왼쪽 패널에 보이는 Gradle Scripts에 있습니다
그래들의 구성은 DSL(Domain Specific Language)로 정의되며
안드로이드 프로젝트에는 두개의 build.gradle 파일에
그래들 구성과 설정값이 정의됩니다(자동 생성)
1. build.gradle(Project: 프로젝트명)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2. build.gradle(Module: app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.ros.samodelkin"
minSdkVersion 27
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
이번 학습은 여기까지하고 다음부터 본격적으로
코틀린 언어에 대해 학습하겠습니다
그럼 이만-_-
'Android' 카테고리의 다른 글
[Android] 코틀린(Kotlin) 문자열(String)과 숫자(Numeric) (0) | 2020.04.21 |
---|---|
[Android] 코틀린(Kotlin) null과 예외(Exception) (0) | 2020.04.18 |
[Android] 코틀린(Kotlin) 함수(Function) (0) | 2020.04.18 |
[Android] 코틀린(Kotlin) 변수(Variable)/상수(Constant)/데이터 타입(Data type)/제어 흐름(Control flow) (0) | 2020.04.17 |
[Android] 인텔리제이(IntelliJ IDEA) 설치 (0) | 2020.04.16 |