전통문화대전망 - 전통 미덕 - 모바일 개발에 대한 기본 튜토리얼: Android 개발이란 무엇입니까?
모바일 개발에 대한 기본 튜토리얼: Android 개발이란 무엇입니까?
안드로이드는 리눅스 커널을 기반으로 한 운영체제로 구글이 2007년 11월 5일 발표한 모바일 운영체제이다. 초기에는 구글이 개발했고 이후에는 오픈핸드셋얼라이언스(Open Handset Alliance)가 개발했다. 소프트웨어 스택(소프트웨어 스택이라고도 함) 아키텍처를 채택하고 주로 세 부분으로 나뉩니다. 기본 Linux 커널은 기본 기능만 제공하며 다른 응용 소프트웨어는 각 회사에서 개발하고 일부 프로그램은 Java로 작성됩니다.
1. 소개
BlackBerry와 iPhone은 모두 인기 있는 대용량 모바일 플랫폼을 제공하지만 서로 다른 두 소비자 그룹을 대상으로 합니다. BlackBerry는 기업 비즈니스 사용자에게 최고의 선택입니다. 그러나 소비자 기기로서는 사용 편의성과 '참신함' 측면에서 아이폰과 경쟁할 수 없습니다. Android는 서로 다른 두 소비자 그룹을 동시에 포괄할 수 있는 잠재력을 갖고 있으며 업무와 엔터테인먼트 간의 격차를 줄일 수 있는 젊고 아직 개발되지 않은 플랫폼입니다.
오늘날 많은 네트워크 기반 또는 네트워크 지원 장치는 일종의 Linux 커널을 실행합니다. 이는 견고한 플랫폼입니다. 배포 및 지원이 비용 효율적이며 배포를 위한 좋은 설계 접근 방식으로 사용됩니다. 이러한 장치의 UI는 일반적으로 HTML 기반이며 PC 또는 Mac 브라우저를 통해 볼 수 있습니다. 그러나 모든 장치를 일반 컴퓨팅 장치로 제어할 필요는 없습니다. 전기 스토브, 전자레인지, 토스터와 같은 전통적인 가전제품을 생각해 보십시오. 당신의 가전제품이 안드로이드로 제어되고, 컬러 터치스크린이 있다면 어떨까요? 핫플레이트에 안드로이드 UI가 있으면 운영자는 요리도 할 수 있다.
2. Android 용어
Eclipse 환경에서 Android 애플리케이션을 개발하려면 Eclipse 환경과 Android 플랫폼에 대한 지식이 필요합니다. 다음 용어를 이해하면 Eclipse 플러그인을 사용하여 Android 애플리케이션을 개발하는 데 도움이 됩니다.
오픈핸드셋얼라이언스
구글이 주도하는 단체로 다수의 공공단체와 민간단체로 구성되어 있다.
Android
이것은 Open Handset Alliance의 주력 제품입니다. 모바일 기기를 위한 오픈소스 운영 환경입니다.
에뮬레이터
다른 시스템을 에뮬레이트하는 소프트웨어 도구 - 이는 모바일 컴퓨팅 장치와 같은 다른 환경을 시뮬레이션하는 개인용 컴퓨터(IBM, Mac, Linux)에서 실행되는 환경인 경우가 많습니다.
Linux
서버, 데스크톱 컴퓨터, 네트워크 장비, 모바일 컴퓨팅 장치 등 다양한 컴퓨팅 플랫폼에서 사용되는 오픈 소스 운영 체제 커널입니다. Android는 Linux 커널에서 실행됩니다.
Dalvik Virtual Machine
Dalvik VM은 런타임 시 애플리케이션 코드를 해석하는 Android 제품 포트폴리오의 운영 환경입니다. Dalvik VM은 Java VM과 유사하지만 둘은 호환되지 않습니다.
3. Android의 간략한 역사
Android 플랫폼은 더 나은 휴대폰을 만들기 위해 노력하는 기업 그룹으로 구성된 Open Handset Alliance의 결과입니다. 이 조직은 Google이 주도하며 이동통신사, 휴대폰 제조업체, 부품 제조업체, 소프트웨어 솔루션 및 플랫폼 제공업체, 마케팅 회사로 구성됩니다. 소프트웨어 개발 관점에서 안드로이드는 오픈소스 분야의 중심에 있습니다.
시장에 출시된 최초의 Android 지원 휴대폰은 HTC에서 제조하고 T-Mobile에서 공급한 G1이었습니다. 이 장치는 구상부터 출시까지 약 1년이 걸렸으며, 사용할 수 있는 유일한 소프트웨어 개발 도구는 점진적인 개선을 구현한 몇 가지 SDK 릴리스뿐이었습니다. G1 출시 날짜가 다가옴에 따라 Android 팀은 SDK V1.0을 출시했으며 이 새로운 플랫폼을 위한 애플리케이션도 등장했습니다.
혁신을 장려하기 위해 Google은 두 번의 'Android 개발자 챌린지'를 개최하여 우승자에게 수백만 달러의 보상을 제공했습니다. G1이 출시된 지 몇 달 후, 사용자가 자신의 휴대폰에서 직접 앱을 검색하고 다운로드할 수 있는 Android 마켓이 출시되었습니다. 약 18개월 후, 새로운 모바일 플랫폼이 공개 도메인에 진입했습니다.
4. Android 플랫폼
Android 플랫폼은 다음을 포함하는 구성 요소 모음이므로 제품 포트폴리오라고 합니다.
Linux 커널 시스템 기반 작업 컴파일러, 리소스 컴파일러, 디버거 및 에뮬레이터를 포함한 Java 프로그래밍 환경 도구 세트 애플리케이션 실행에 사용되는 Dalvik VM
Android는 기능이 풍부하므로 데스크톱 운영 체제와 혼동되기 쉽습니다. Android는 Linux 커널을 기반으로 구축된 계층화된 환경이며 풍부한 기능을 포함하고 있습니다. UI 하위 시스템에는 다음이 포함됩니다.
창 보기 편집 상자, 목록 및 드롭다운 목록과 같은 일반적인 구성 요소를 표시하는 데 사용되는 위젯입니다.
Android에는 WebKit을 기반으로 구축된 내장형 브라우저가 포함되어 있으며 iPhone의 Mobile Safari 브라우저도 WebKit을 기반으로 합니다.
Android는 Wi-Fi, 블루투스, 셀룰러 연결(예: GPRS, EDGE, 3G)을 통한 무선 데이터 전송 등 다양한 연결 옵션을 제공합니다. Android 앱에서 널리 사용되는 기술은 앱 내에 주소를 표시하기 위해 Google 지도에 연결하는 것입니다. Android 소프트웨어 스택은 위치 기반 서비스(예: GPS) 및 가속도계에 대한 지원도 제공하지만 모든 Android 기기에 필요한 하드웨어가 장착되어 있는 것은 아닙니다. 카메라 지원도 있습니다.
과거 모바일 애플리케이션이 데스크톱 애플리케이션과 경쟁하기 어려웠던 두 가지 영역은 그래픽/미디어와 데이터 저장 방식이었습니다. Android는 OpenGL 라이브러리를 포함하여 2D 및 3D 그래픽에 대한 기본 지원을 제공하여 그래픽 문제를 해결합니다. Android 플랫폼에는 널리 사용되는 오픈 소스 SQLite 데이터베이스가 포함되어 있으므로 데이터 저장 부담이 완화됩니다. 그림 1은 단순화된 Android 소프트웨어 계층 구조를 보여줍니다.
5. 애플리케이션 아키텍처
앞서 언급했듯이 Android는 Linux 커널에서 실행됩니다. Android 애플리케이션은 Java 프로그래밍 언어로 작성되었으며 VM(가상 머신)에서 실행됩니다. 참고로 이 VM은 여러분이 상상하는 JVM이 아니라 오픈소스 기술인 Dalvik Virtual Machine입니다. 모든 Android 애플리케이션은 아래 그림과 같이 Linux 커널이 관리하는 프로세스에 상주하는 Dalvik VM의 인스턴스에서 실행됩니다.
Android 애플리케이션은 하나 이상의 구성 요소로 구성됩니다.
활동
시각적 UI가 있는 애플리케이션은 활동을 사용하여 구현됩니다. 사용자가 홈 화면이나 앱 실행기에서 앱을 선택하면 작업이 시작됩니다.
서비스
서비스는 네트워크 모니터나 업데이트 확인 애플리케이션과 같이 장기간 지속되어야 하는 모든 애플리케이션에 사용해야 합니다.
콘텐츠 제공자
콘텐츠 제공자를 데이터베이스 서버로 생각하세요. 콘텐츠 제공자는 SQLite 데이터베이스와 같은 영구 데이터에 대한 액세스를 관리하는 임무를 맡습니다. 애플리케이션이 매우 간단한 경우 콘텐츠 제공자를 만들 필요가 없을 수도 있습니다. 더 큰 애플리케이션을 구축하거나 여러 활동이나 애플리케이션에 데이터를 제공해야 하는 애플리케이션을 구축하는 경우 콘텐츠 공급자를 사용하여 데이터 액세스를 얻을 수 있습니다.
브로드캐스트 수신기
Android 애플리케이션을 사용하여 데이터 요소를 처리하거나 이벤트(예: 문자 메시지 수신)에 응답할 수 있습니다.
Android 애플리케이션은 AndroidManifest.xml 파일과 함께 기기에 배포됩니다. AndroidManifest.xml에는 기기에 올바르게 설치하는 데 필요한 구성 정보가 포함되어 있습니다. 여기에는 애플리케이션이 처리할 수 있는 필수 클래스 이름과 이벤트 유형은 물론 애플리케이션을 실행하는 데 필요한 권한도 포함됩니다. 예를 들어, 애플리케이션이 파일을 다운로드하기 위해 네트워크에 액세스해야 하는 경우 해당 권한이 매니페스트 파일에 명시적으로 나열되어야 합니다. 많은 애플리케이션에서 이 특정 권한을 활성화할 수 있습니다. 이 선언적 보안은 악성 응용 프로그램이 장치를 손상시킬 가능성을 줄이는 데 도움이 됩니다.
6. 필수 도구
Android 애플리케이션 개발을 시작하는 가장 쉬운 방법은 AndroidSDK와 EclipseIDE를 다운로드하는 것입니다. Android 개발은 Microsoft Windows, Mac OS X 또는 Linux에서 수행할 수 있습니다.
이 문서에서는 Eclipse IDE와 Eclipse용 Android 개발자 도구 플러그인을 사용하고 있다고 가정합니다. Android 애플리케이션은 Java 언어로 작성되지만 Dalvik VM(Java가 아닌 가상 머신)에서 컴파일되고 실행됩니다. Eclipse에서는 Java 언어로 프로그래밍하는 것이 매우 쉽습니다. Eclipse는 상황에 맞는 도움말과 코드 힌트를 포함하여 풍부한 Java 환경을 제공합니다.
Java 코드가 컴파일된 후 Android 개발자 도구는 AndroidManifest.xml 파일을 포함하여 해당 코드가 적절하게 패키징되었는지 확인합니다.
Eclipse 및 Android 개발자 도구 플러그인 없이 Android 애플리케이션을 개발하는 것이 가능하지만 이를 위해서는 Android SDK에 익숙해야 합니다.
AndroidSDK는 ZIP 파일로 배포되며 하드 드라이브의 디렉터리에 압축을 풀 수 있습니다. 여러 SDK 업데이트가 있으므로 다양한 SDK 설치 간에 쉽게 전환할 수 있도록 개발 환경을 의식적으로 구성하는 것이 좋습니다.
SDK에는 다음이 포함됩니다.
android.jar
애플리케이션을 빌드하는 데 필요한 모든 Android SDK 클래스가 포함된 Java 아카이브입니다.
documention.html 및 docs 디렉토리
SDK 문서는 로컬 및 온라인으로 제공됩니다. 이러한 문서는 SDK의 많은 패키지를 더 쉽게 탐색할 수 있도록 기본적으로 JavaDoc 형식으로 되어 있습니다. 문서에는 고급 개발 가이드와 Android 커뮤니티 링크도 포함되어 있습니다.
Samples 디렉터리
Samples 하위 디렉터리에는 많은 API를 보여주는 ApiDemo를 포함하여 다양한 애플리케이션에 대한 소스 코드가 포함되어 있습니다. 이 샘플 애플리케이션은 Android 애플리케이션 개발을 위한 좋은 출발점이 될 수 있습니다.
도구 디렉토리
Android 애플리케이션 구축을 위한 모든 명령줄 도구가 포함되어 있습니다. 가장 일반적으로 사용되고 유용한 도구는 adb 유틸리티(Android 디버그 브리지)입니다.
usb_driver
이 디렉토리에는 개발 환경을 Android 지원 장치(예: G1 또는 Android Dev 1 잠금 해제 개발 휴대폰)에 연결하는 데 필요한 드라이버가 포함되어 있습니다. Windows 플랫폼의 개발자에게만 이러한 파일이 필요합니다.
Android 애플리케이션은 실제 기기나 Android SDK에 포함된 Android Emulator에서 실행될 수 있습니다. 그림 3은 Android Emulator의 홈 화면을 보여줍니다.
7. Android 디버그 브리지
adb 유틸리티는 일부 선택적 명령줄 매개변수를 지원하여 기기 간 파일 복사와 같은 강력한 기능을 제공합니다. 쉘 명령줄 매개변수를 사용하여 전화기 자체에 연결하고 기본 쉘 명령을 보낼 수 있습니다. 그림 4는 USB 케이블을 통해 Windows 노트북에 연결된 실제 장치에서 실행되는 adb 쉘 명령을 보여줍니다.
이 셸 환경에서는 다음을 수행할 수 있습니다.
네트워크 구성을 표시합니다. 네트워크 구성은 여러 네트워크 연결을 표시할 수 있습니다. 다음과 같은 여러 네트워크 연결에 유의하세요.
lo는 로컬 또는 루프백 연결입니다.
tiwlan0은 로컬 DHCP 서버에서 주소와 함께 제공되는 WiFi 연결입니다.
PATH 환경 변수의 내용을 표시합니다.
슈퍼유저가 되려면 su 명령을 실행하세요.
디렉터리를 사용자 애플리케이션이 저장되는 /data/app으로 변경하세요.
애플리케이션이 포함된 디렉토리를 나열합니다. Android 애플리케이션 파일은 실제로 WinZip과 같은 소프트웨어를 통해 볼 수 있는 아카이브 파일입니다. 확장자는 apk입니다.
ping 명령을 실행하여 Google.com을 사용할 수 있는지 확인하세요.
동일한 명령 프롬프트 환경에서 SQLite 데이터베이스와 상호 작용하고, 프로그램을 실행하고, 기타 여러 시스템 수준 작업을 수행할 수도 있습니다. 당신이 전화에 연결되어 있다고 상상해보십시오. 이것은 매우 멋진 기능입니다.