수색…


비고

Android Gradle Plugin 설정에 대한 자세한 내용은 android-gradle 문서를 확인하십시오.

대체 에뮬레이터에 관심이 있다면 Genymotion을 살펴 보십시오 . 무료 계획을 제공하며 RAM 용량이 더 적습니다.

버전

번역 API 레벨 버전 코드 출시일
1.0 1 BASE 2008-09-23
1.1 2 BASE_1_1 2009-02-09
1.5 CUPCAKE 2009-04-27
1.6 4 DONUT 2009-09-15
2.0 5 ECLAIR 2009-10-26
2.0.1 6 ECLAIR_0_1 2009-12-03
2.1.x 7 ECLAIR_MR1 2010-01-12
2.2.x 8 FROYO 2010-05-20
2.3 9 GINGERBREAD 2010-12-06
2.3.3 10 GINGERBREAD_MR1 2011-02-09
3.0.x 11 HONEYCOMB 2011-02-22
3.1.x 12 HONEYCOMB_MR1 2011-05-10
3.2.x 13 HONEYCOMB_MR2 2011 년 7 월 15 일
4.0 14 ICE_CREAM_SANDWICH 2011-10-18
4.0.3 15 명 ICE_CREAM_SANDWICH_MR1 2011-12-16
4.1 16 JELLY_BEAN 2012-07-09
4.2 17 JELLY_BEAN_MR1 2012-11-13
4.3 18 JELLY_BEAN_MR2 2013 년 7 월 24 일
4.4 19 KITKAT 2013-10-31
4.4W 20 KITKAT_WATCH 2014-06-25
5.0 21 LOLLIPOP 2014-11-12
5.1 22 LOLLIPOP_MR1 2015-03-09
6.0 23 M (마시 멜로우) 2015-10-05
7.0 24 N (Nougat) 2016-08-22
7.1 25 명 N_MR1 (누가 MR1) 2016-10-04
8.0 26 세 O (개발자 미리보기 4) 2017-07-24

Android Studio 설정

Android Studio 는 Google에서 공식적으로 지원하고 권장하는 Android 개발 IDE입니다. Android Studio에는 응용 프로그램 개발을 시작하는 데 필요한 Android SDK 구성 요소를 다운로드하는 도구 인 Android SDK Manager 가 번들로 제공됩니다.

Android Studio 및 Android SDK 도구 설치 :

  1. Android Studio를 다운로드하여 설치하십시오.
  2. Android Studio를 열고 Android SDK 도구 업데이트 지침에 따라 최신 SDK 도구 및 SDK 플랫폼 도구를 다운로드하십시오. 최신 안정 패키지를 설치해야합니다.

이전 SDK 버전을 사용하여 빌드 된 기존 프로젝트에서 작업해야하는 경우 이러한 버전을 다운로드해야 할 수도 있습니다

Android Studio 2.2부터는 최신 OpenJDK의 복사본이 설치와 함께 번들로 제공되며 모든 Android Studio 프로젝트에 권장되는 JDK (Java Development Kit)입니다. 따라서 Oracle의 JDK 패키지가 설치 될 필요가 없습니다. 번들 SDK를 사용하려면 다음과 같이하십시오.

  1. Android Studio에서 프로젝트를 열고 메뉴 바에서 파일> 프로젝트 구조 를 선택하십시오.
  2. SDK 위치 페이지 및 JDK 위치 에서 내장 JDK 사용 확인란을 선택하십시오.
  3. 확인을 클릭하십시오.

Android Studio 구성

Android Studio는 도움말 메뉴를 통해 두 개의 구성 파일에 대한 액세스를 제공합니다.

  • studio.vmoptions : 힙 크기 및 캐시 크기와 같은 Studio의 Java Virtual Machine (JVM)에 대한 옵션을 사용자 정의합니다. Linux 컴퓨터에서는 Android Studio 버전에 따라이 파일의 이름을 studio64.vmoptions로 지정할 수 있습니다.
  • idea.properties : 플러그인 폴더 경로 또는 지원되는 최대 파일 크기와 같은 Android Studio 속성을 맞춤 설정합니다.

테마 변경 / 추가

원하는대로 변경할 수 있습니다. File->Settings->Editor->Colors & Fonts-> 테마를 선택하십시오. 또한 http://color-themes.com/ 에서 새로운 테마를 다운로드 할 수 있습니다. .jar.zip 파일을 다운로드했으면 File -> Import Settings... 를 선택하고 다운로드 한 파일을 선택하십시오.

앱 컴파일하기

Android Studio에서 새 프로젝트를 만들거나 기존 프로젝트를 연 다음 녹색 재생 버튼을 누릅니다. 여기에 이미지 설명을 입력하십시오. 그것을 실행하려면 상단 툴바에 있습니다. 회색 인 경우 Android Studio가 일부 파일을 올바르게 색인 할 수 있도록 잠시 기다려야합니다. 진행 상태는 하단 상태 표시 줄에 표시됩니다.

셸에서 프로젝트를 만들려면 Android Studio에서 자동으로 생성 한 local.properties 파일이 있어야합니다. Android Studio를 사용하지 않고 프로젝트를 생성해야하는 경우 sdk.dir= 시작하는 줄과 SDK 설치 경로가 필요합니다.

셸을 열고 프로젝트 디렉토리로 이동하십시오. ./gradlew aR 을 입력하고 Enter 키를 누릅니다. aRassembleRelease 의 바로 가기이며, 모든 의존성을 다운로드하고 앱을 빌드합니다. 최종 APK 파일은 ProjectName/ModuleName/build/outputs/apk 있으며 ModuleName-release.apk 라고 ModuleName-release.apk .

새 프로젝트 만들기

Android Studio 설정

먼저 Android Studio설정 한 다음 엽니 다. 이제 첫 번째 Android 앱을 만들 준비가되었습니다.

참고 : 이 가이드는 Android Studio 2.2를 기반으로하지만 다른 버전의 프로세스는 기본적으로 동일합니다.

프로젝트 구성

기본 구성

다음 두 가지 방법으로 새 ​​프로젝트를 시작할 수 있습니다.

  • Start a New Android Studio Project 화면에서 Start a New Android Studio Project 클릭합니다.
  • 이미 프로젝트가 열려 있으면 FileNew Project 이동하십시오.

다음으로 몇 가지 입력란을 작성하여 신청서를 설명해야합니다.

  1. 응용 프로그램 이름 -이 이름은 사용자에게 표시됩니다.

    예 : Hello World . 나중에 AndroidManifest.xml 파일에서 언제든지 변경할 수 있습니다.

  2. 회사 도메인 - 프로젝트의 패키지 이름에 대한 한정자입니다.

    예 : stackoverflow.com .

  3. 패키지 이름 (일명 applicationId ) - 정규화 된 프로젝트 패키지 이름입니다.

    역방향 도메인 이름 표기법 (일명 역방향 DNS ) : 최상위 도메인을 따라야 합니다. 회사 도메인 . [ 회사 세그먼트 . ] 응용 프로그램 이름 .

    예 : com.stackoverflow.android.helloworld 또는 com.stackoverflow.helloworld . 언제든지 gradle 파일 에서 덮어 쓰면 applicationId 를 변경할 수 있습니다.

애플리케이션을 Google Play 스토어에 제출하지 않는 경우를 제외하고는 기본 접두사 "com.example"을 사용하지 마십시오. 패키지 이름은 Google Play의 고유 한 애플리케이션 ID입니다.

  1. 프로젝트 위치 - 프로젝트를 저장할 디렉토리입니다.

새 프로젝트 대화 상자

폼 팩터 및 API 레벨 선택

다음 창에서는 휴대 전화, 태블릿, TV, 착용 및 Google Glass와 같이 앱에서 지원하는 양식 요소를 선택할 수 있습니다. 선택한 폼 팩터가 프로젝트 내의 앱 모듈이됩니다. 각 폼 팩터별로 해당 앱의 API 레벨을 선택할 수도 있습니다. 자세한 내용을 보려면 선택 도움말을 클릭 하십시오.

여기에 이미지 설명을 입력하십시오. 선택할 도움말을 클릭하면 현재 Android 버전 배포판 차트가 표시됩니다.

Android Platform Distribution 창은 그림 2와 같이 각 Android 버전을 실행하는 모바일 장치의 분포를 보여줍니다. API 수준을 클릭하면 해당 Android 버전에서 소개 된 기능 목록을 볼 수 있습니다. 이렇게하면 앱에 필요한 모든 기능을 갖춘 최소 API 레벨을 선택할 수 있으므로 최대한 많은 기기를 사용할 수 있습니다. 그런 다음 확인을 클릭하십시오.

이제 응용 프로그램에서 지원할 Android SDK 의 플랫폼 및 버전을 선택하십시오.

SDK 버전 대화 상자

지금은 전화 및 태블릿 만 선택하십시오.

최소 SDK 는 앱의 하한입니다. Google Play Store 에서 앱을 설치할 수있는 기기를 결정하는 데 사용하는 신호 중 하나입니다. 예를 들어 스택 Exchange의 앱 은 Android 4.1 이상을 지원합니다.

Stack Exchange의 앱
Android Studio는 지정된 최소 SDK를 기준으로 지원되는 기기의 비율을 (대략) 알려줍니다.

API 수준이 낮을수록 더 많은 기기를 타겟팅 할 수 있지만 사용할 수있는 기능이 줄어 듭니다.

최소 SDK를 결정할 때 지난 주에 전 세계 Google Play 스토어를 방문한 기기에 대한 버전 정보를 제공하는 Dashboards 통계를 고려해야합니다.

현재 안드로이드 배포판의 스크린 샷

From : Android 개발자 웹 사이트의 대시 보드 .

활동 추가

이제 응용 프로그램의 기본 활동을 선택하겠습니다. Android에서는 Activity 이 사용자에게 표시되는 단일 화면입니다. 애플리케이션은 여러 액티비티를 수용하고 그 액티비티간에 이동할 수 있습니다. 이 예의 경우 Empty Activity 선택하고 next를 클릭하십시오.

여기에서 원하는 경우 활동 및 레이아웃의 이름을 변경할 수 있습니다. 좋은 연습은 유지하는 Activity 상기 활동 이름 접미사와 같은 activity_ 레이아웃 이름에 대한 접두어로. 이들을 기본값으로두면 Android Studio는 MainActivity 라는 activity_mainMainActivity 라는 레이아웃 파일을 생성합니다. Finish 클릭하십시오.

Android Studio는 프로젝트를 만들고 구성하며 시스템에 따라 다소 시간이 걸릴 수 있습니다.

프로젝트 검사

Android가 어떻게 작동하는지 이해하려면 Google에서 제작 한 일부 파일을 살펴 보겠습니다.

Android Studio의 왼쪽 창에서 Android 애플리케이션구조를 볼 수 있습니다.

기본 응용 프로그램 구조

먼저 AndroidManifest.xml 을 더블 클릭하여 엽니 다. Android 매니페스트 파일은 Android 애플리케이션에 대한 기본 정보 중 일부를 설명합니다. 여기에는 활동의 선언뿐만 아니라보다 진보 된 구성 요소가 포함되어 있습니다.

응용 프로그램이 권한으로 보호 된 기능에 액세스해야하는 경우에는 매니페스트의 <uses-permission> 요소로 해당 권한이 필요하다고 선언해야합니다. 그런 다음 응용 프로그램이 장치에 설치되면 설치 프로그램은 응용 프로그램의 인증서에 서명 한 기관을 확인하고 경우에 따라 사용자에게 요청하여 요청 된 권한을 부여할지 여부를 결정합니다. 또한 응용 프로그램은 자체 구성 요소 (활동, 서비스, 브로드 캐스트 수신기 및 컨텐트 공급자)를 사용 권한으로 보호 할 수 있습니다. Android에서 정의한 권한 (android.Manifest.permission에 나열 됨)을 사용하거나 다른 응용 프로그램에서 선언 한 권한을 사용할 수 있습니다. 또는 자체적으로 정의 할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.stackoverflow.helloworld">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

다음으로, app/src/main/res/layout/ 있는 activity_main.xml 을 엽니 다. 이 파일에는 MainActivity의 시각적 구성 요소에 대한 선언이 포함되어 있습니다. 비주얼 디자이너가 나타납니다. 이렇게하면 선택한 레이아웃으로 요소를 끌어다 놓을 수 있습니다.

다음과 같이 Android Studio 하단의 '텍스트'를 클릭하여 xml 레이아웃 디자이너로 전환 할 수도 있습니다.

레이아웃 디자인 / 텍스트 탭

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.stackexchange.docs.helloworld.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

android:text 속성이 "Hello World!"로 설정된이 레이아웃 안에 TextView 라는 위젯이 표시됩니다. 이것은 사용자가 응용 프로그램을 실행할 때 사용자에게 표시 될 텍스트 블록입니다.

레이아웃과 속성 에 대해 자세히 읽을 수 있습니다.

다음으로 MainActivity 살펴 보겠습니다. 이것은 MainActivity 대해 생성 된 Java 코드입니다.

public class MainActivity extends AppCompatActivity {

    // The onCreate method is called when an Activity starts
    // This is where we will set up our layout
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // setContentView sets the Activity's layout to a specified XML layout
        // In our case we are using the activity_main layout
        setContentView(R.layout.activity_main);
    }
}

Android Manifest에 정의 된대로 MainActivity 는 사용자가 HelloWorld 앱을 시작할 때 기본적으로 시작됩니다.

마지막으로 app/ 에있는 build.gradle 파일을 엽니 다.
Android Studio는 빌드 시스템 Gradle 을 사용하여 Android 애플리케이션 및 라이브러리를 컴파일하고 빌드합니다.

apply plugin: 'com.android.application'

android {
signingConfigs {
         applicationName {
             keyAlias 'applicationName'
             keyPassword 'password'
             storeFile file('../key/applicationName.jks')
             storePassword 'anotherPassword'
         }
     }
    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    defaultConfig {
        applicationId "com.stackexchange.docs.helloworld"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.applicationName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:26.0.0'
}

이 파일은 빌드 및 앱 버전에 대한 정보를 포함하며 외부 라이브러리에 종속성을 추가하는 데 사용할 수도 있습니다. 지금은 변경하지 마십시오.

항상 종속성에 사용할 수있는 최신 버전을 선택하는 것이 좋습니다.

compileSdkVersion

compileSdkVersionGradle 에게 앱을 컴파일 할 Android SDK의 버전을 알려주는 방법입니다. 새 Android SDK를 사용하려면 해당 수준에 추가 된 새 API를 사용해야합니다.

compileSdkVersion 변경해도 런타임 동작이 변경되지 않는다는 점을 강조해야합니다. compileSdkVersion 변경할 때 새로운 컴파일러 경고 / 오류가 나타날 수 있지만 compileSdkVersion 은 APK에 포함되어 있지 않습니다. 컴파일시 완전히 사용됩니다.

따라서 항상 최신 SDK로 컴파일하는 것이 좋습니다. 기존 코드에서 새로운 컴파일 검사의 모든 이점을 얻고, 사용되지 않는 API를 사용하지 않고 새로운 API를 사용할 수 있습니다.

minSdkVersion

compileSdkVersion 사용 가능한 최신 API를 설정하면 minSdkVersion 은 앱의 하한 입니다. minSdkVersion 은 Google Play 스토어가 앱을 설치할 수있는 사용자 기기를 결정하는 데 사용하는 신호 중 하나입니다.

또한 개발 과정에서 중요한 역할을합니다. 기본적으로 lint는 프로젝트에 대해 실행되므로 minSdkVersion 보다 높은 API를 사용할 때 경고하므로 존재하지 않는 API를 호출하려고 시도하는 런타임 문제를 피할 수 있습니다. 최신 플랫폼 버전에서만 API를 사용할 때 런타임시 시스템 버전을 확인하는 것이 일반적인 기술입니다.

targetSdkVersion

targetSdkVersiontargetSdkVersion 이 업데이트되지 않는 한 Android가 동작 변경 사항을 적용하지 않음으로써 정방향 호환성을 제공하는 주된 방법입니다. 이를 통해 동작 변경을 수행하기 전에 새 API를 사용할 수 있습니다. 최신 SDK를 대상으로 업데이트하는 것은 모든 앱에 우선 순위가 있어야합니다. 그렇다고해서 도입 된 모든 새로운 기능을 사용해야하거나 테스트하지 않고 맹목적으로 targetSdkVersion 을 업데이트해야하는 것은 아닙니다.

targetSDKVersion은 사용 가능한 도구의 상한 인 Android 버전입니다. targetSDKVersion이 23보다 작 으면 앱이 API 23 이상에서 실행 중이더라도 런타임에 인스턴스에 대한 권한을 요청하지 않아도됩니다. TargetSDKVersion은 Android 버전 위에있는 Android 버전이 앱을 실행하는 것을 막지 않습니다 .

Gradle 플러그인에 대한 자세한 정보는 다음에서 찾을 수 있습니다.

응용 프로그램 실행

이제 HelloWorld 애플리케이션을 실행 해 보겠습니다. Android 가상 기기 (아래 예에서 설명 된 것처럼 Android Studio에서 AVD 관리자를 사용하여 설정할 수 있음)를 실행하거나 USB 케이블을 통해 Android 기기를 연결할 수 있습니다.

Android 기기 설정

Android 기기에서 Android Studio의 애플리케이션을 실행하려면 기기 설정에서 Developer Options USB Debugging 을 사용하도록 설정해야합니다.

Settings > Developer options > USB debugging

설정에서 Developer Options 이 보이지 않는 경우 About Phone 이동하여 Build Number 7 번 누릅니다. 그러면 Developer Options 이 설정에 표시됩니다.

Settings > About phone > Build number

또한 장치에있는 버전을 빌드하려면 build.gradle 구성을 변경해야 할 수도 있습니다.

Android Studio에서 실행 중

Android Studio 상단의 툴바에서 녹색 Run 버튼을 클릭하십시오. 표시되는 창에서 앱을 실행할 장치를 선택합니다 (필요한 경우 Android 가상 장치를 시작하거나 설정 해야하는 경우 AVD (Android 가상 장치) 설정 참조). OK 합니다.

실행 버튼

Android 4.4 (KitKat) 이상을 실행하는 기기에서는 USB 디버깅을 승인 할 수있는 팝업이 표시됩니다. 수락하려면 OK 을 클릭하십시오.

이제 응용 프로그램이 Android 장치 또는 에뮬레이터에 설치되어 실행됩니다.

APK 파일 위치

릴리스 용 응용 프로그램을 준비하면 응용 프로그램의 릴리스 버전을 구성, 빌드 및 테스트합니다. 구성 작업은 응용 프로그램을 최적화하는 데 도움이되는 기본 코드 정리 및 코드 수정 작업을 포함하여 간단합니다. 빌드 프로세스는 디버그 빌드 프로세스와 비슷하며 JDK 및 Android SDK 도구를 사용하여 수행 할 수 있습니다. 테스트 작업은 실제 상황에서 응용 프로그램이 예상대로 작동하는지 확인하는 최종 검사 역할을합니다. 출시를위한 신청서 작성을 마쳤 으면 서명 된 APK 파일이 있으며이를 사용자에게 직접 배포하거나 Google Play와 같은 애플리케이션 마켓 플레이스를 통해 배포 할 수 있습니다.

Android Studio

위의 예에서 Gradle이 사용 <Your Project Location>/app/build/outputs/apk/app-debug.apk 생성 된 APK 파일의 위치는 다음과 같습니다. <Your Project Location>/app/build/outputs/apk/app-debug.apk

IntelliJ

Studio로 전환하기 전에 IntelliJ 사용자인데 IntelliJ 프로젝트를 직접 가져 오는 경우 아무 것도 변경되지 않습니다. 출력 위치는 다음과 같습니다.

out/production/...

주의 : 이것은 때때로 약 1.0이 사용되지 않게 될 것입니다.

Android Eclipse 프로젝트를 직접 가져 오는 경우에는이 작업을 수행하지 마십시오! 프로젝트 (jars 또는 Library Projects)에 종속성을 갖게되면이 작업이 수행되지 않고 프로젝트가 제대로 설정되지 않습니다. 의존성이 없다면, apk는 Eclipse에서 찾을 수있는 것과 같은 위치에있게됩니다.

bin/...

IDE가없는 안드로이드 프로그래밍

이것은 가장 기본적인 Android 도구 만 사용하는 최소 Hello World 예 입니다.

요구 사항 및 가정

이 예제는 Linux를 가정합니다. 자신의 플랫폼에 대한 구문을 조정해야 할 수도 있습니다.

Android SDK 설정

SDK 릴리스의 압축을 푼 후에는 다음을 수행하십시오.

  1. SDK 관리자를 사용하여 추가 패키지를 설치하십시오. 번들로 제공되는 Readme.txt의 지침에 따라 android update sdk --no-ui 를 사용하지 마십시오. 불필요한 파일 30GB를 다운로드합니다. 대화식 SDK 관리자 인 android sdk 를 사용하여 최소 권장 패키지를 얻으십시오.

  2. 실행 PATH에 다음 JDK 및 SDK 디렉토리를 추가하십시오. 이것은 선택 사항이지만, 아래의 지시 사항에서 가정합니다.

    • JDK / bin
    • SDK / 플랫폼 도구
    • SDK / 도구
    • SDK / build-tools / LATEST (1 단계에서 설치 한대로)
  3. Android 가상 장치를 만듭니다. 대화 형 AVD 관리자 ( android avd )를 사용하십시오. 약간의 바이올린을하고 조언을 검색해야 할 수도 있습니다. 현장의 지침 이 항상 도움이되는 것은 아닙니다.

    (당신은 또한 자신의 장치를 사용할 수 있습니다)

  4. 장치 실행 :

    emulator -avd DEVICE
    
  5. 기기 화면이 잠긴 것처럼 보이면 스 와이프하여 잠금을 해제하십시오.

    앱을 코딩하는 동안 실행 상태로 둡니다.

앱 코딩

  1. 빈 작업 디렉토리로 변경하십시오.

  2. 소스 파일 만들기 :

    mkdir --parents src/dom/domain
    touch src/dom/domain/SayingHello.java
    

    함유량:

    package dom.domain;
    import android.widget.TextView;
    
    public final class SayingHello extends android.app.Activity
    {
        protected @Override void onCreate( final android.os.Bundle activityState )
        {
            super.onCreate( activityState );
            final TextView textV = new TextView( SayingHello.this );
            textV.setText( "Hello world" );
            setContentView( textV );
        }
    }
    
  3. 매니페스트 추가 :

    touch AndroidManifest.xml
    

    함유량:

    <?xml version='1.0'?>
    <manifest xmlns:a='http://schemas.android.com/apk/res/android'
     package='dom.domain' a:versionCode='0' a:versionName='0'>
        <application a:label='Saying hello'>
            <activity a:name='dom.domain.SayingHello'>
                 <intent-filter>
                    <category a:name='android.intent.category.LAUNCHER'/>
                    <action a:name='android.intent.action.MAIN'/>
                    </intent-filter>
                </activity>
            </application>
        </manifest>
    
  4. 선언 된 리소스에 대한 하위 디렉토리를 만듭니다.

    mkdir res
    

    지금은 비워 둡니다.

코드 작성

  1. 자원 선언에 대한 소스를 생성하십시오. 여기서 올바른 경로를 SDK 로 대체하고 빌드 할 설치된 API 를 (예 : "android-23") :

    aapt package -f \
      -I SDK/platforms/android-API/android.jar \
      -J src -m \
      -M AndroidManifest.xml -S res -v
    

    리소스 선언 (아래에서 자세히 설명 함)은 실제로 선택 사항입니다. 위의 호출은 res /가 여전히 비어 있으면 아무 것도 수행하지 않습니다.

  2. 소스 코드를 Java 바이트 코드 (.java → .class)로 컴파일하십시오.

    javac \
      -bootclasspath SDK/platforms/android-API/android.jar \
      -classpath src -source 1.7 -target 1.7 \
      src/dom/domain/*.java
    
  3. Java에서 Android (.class → .dex)로 바이트 코드 변환 :

    먼저 Jill (.class → .jayce)을 사용합니다.

    java -jar SDK/build-tools/LATEST/jill.jar \
      --output classes.jayce src
    

    그럼 잭 (.jayce → .dex) :

    java -jar SDK/build-tools/LATEST/jack.jar \
      --import classes.jayce --output-dex .
    

    안드로이드 바이트 코드는 "Dalvik 실행 코드"라고 불리곤했기 때문에 "dex"라고합니다.

    원할 경우 11 단계와 12 단계를 Jack에 대한 단일 통화로 바꿀 수 있습니다. Java 소스 (.java → .dex)에서 직접 컴파일 할 수 있습니다. 그러나 javac 로 컴파일 할 때 장점이 있습니다. 더 잘 알려지고 더 잘 문서화되고 광범위하게 적용되는 도구입니다.

  4. 매니페스트를 포함하여 리소스 파일을 패키지화합니다.

    aapt package -f \
      -F app.apkPart \
      -I SDK/platforms/android-API/android.jar \
      -M AndroidManifest.xml -S res -v
    

    이로 인해 부분 APK 파일 (Android 애플리케이션 패키지)이 생성됩니다.

  5. ApkBuilder 도구를 사용하여 전체 APK 만들기 :

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain \
      app.apkUnalign \
      -d -f classes.dex -v -z app.apkPart
    

    경고 : "이 도구는 사용을 권장하지 않습니다. 자세한 내용은 --help를 참조하십시오." --helpArrayIndexOutOfBoundsException 와 함께 실패하면 대신 인수를 전달하십시오.

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain
    

    CLI ( ApkBuilderMain )가 Java API ( ApkBuilder )를 직접 호출하기 위해 사용되지 않음을 설명합니다. (명령 행에서 어떻게하는지 알고 있다면이 예제를 업데이트하십시오.)

  6. APK의 데이터 정렬 최적화 ( 권장 사례 ) :

    zipalign -f -v 4 app.apkUnalign app.apk
    

설치 및 실행 중

  1. Android 기기에 앱 설치 :

    adb install -r app.apk
    
  2. 앱 시작 :

    adb shell am start -n dom.domain/.SayingHello
    

    달리고 인사해야합니다.

그게 다야. 그것이 기본 안드로이드 도구를 사용해 인사 할 때 필요한 것입니다.

리소스 선언하기

이 섹션은 선택 사항입니다. 리소스 선언은 간단한 "hello world"앱에는 필요하지 않습니다. 귀하의 응용 프로그램 중 하나라도 필요하지 않으면 10 단계를 생략하고 13 단계에서 res / 디렉토리에 대한 참조를 제거하여 빌드를 간소화 할 수 있습니다.

그렇지 않으면 리소스를 선언하는 방법과 리소스를 참조하는 방법에 대한 간단한 예가 있습니다.

  1. 리소스 파일 추가 :

    mkdir res/values
    touch res/values/values.xml
    

    함유량:

    <?xml version='1.0'?>
    <resources>
        <string name='appLabel'>Saying hello</string>
    </resources>
    
  2. XML 매니페스트에서 리소스를 참조하십시오. 다음과 같은 선언 스타일입니다.

    <!-- <application a:label='Saying hello'> -->
         <application a:label='@string/appLabel'>
    
  3. Java 소스와 동일한 자원을 참조하십시오. 이것은 필수적인 참조입니다.

    // v.setText( "Hello world" );
       v.setText( "This app is called "
         + getResources().getString( R.string.appLabel ));
    
  4. 앱을 다시 빌드하고 재설치하고 다시 실행하여 위의 수정 사항을 테스트합니다 (10-17 단계).

    다시 시작하고 "이 앱은 안녕하세요"라고 말합니다.

앱 제거

adb uninstall dom.domain

또한보십시오

신청 기초

Android 앱은 Java로 작성됩니다. Android SDK 도구는 코드, 데이터 및 리소스 파일을 APK (Android 패키지)로 컴파일합니다. 일반적으로 하나의 APK 파일에는 앱의 모든 콘텐츠가 포함되어 있습니다.

각 응용 프로그램은 자체의 가상 컴퓨터 (VM)에서 실행되므로 다른 응용 프로그램과 별도로 응용 프로그램을 실행할 수 있습니다. 안드로이드 시스템은 최소한의 권한 원칙으로 작동합니다. 각 앱은 작업을 수행하는 데 필요한 구성 요소에만 액세스 할 수 있으며 더 이상 필요하지 않습니다. 그러나 앱간에 Linux 사용자 ID를 공유하는 등 다른 앱과 데이터를 공유하는 방법이 있거나 앱이 SD 카드, 연락처 등의 기기 데이터에 액세스 할 수있는 권한을 요청할 수 있습니다.

앱 구성 요소

앱 구성 요소는 Android 앱의 기본 요소입니다. 각 구성 요소는 뚜렷한 목적을 지키고 뚜렷한 수명주기 (구성 요소가 언제 어떻게 만들어지고 파괴되는지에 대한 흐름)가있는 Android 앱에서 특정 역할을 담당합니다. 다음은 4 가지 유형의 앱 구성 요소입니다.

  1. 활동 : 활동은 사용자 인터페이스 (UI)가있는 단일 화면을 나타냅니다. Android 앱에 둘 이상의 활동이있을 수 있습니다. (예 : 이메일 응용 프로그램은 모든 전자 메일을 나열하는 활동, 각 전자 메일의 내용을 표시하는 활동 및 새 전자 메일을 작성하는 활동을 가질 수 있습니다.) 응용 프로그램의 모든 활동이 함께 사용자 경험 (User eXperience : UX)을 만듭니다.
  2. 서비스 : 백그라운드에서 실행되는 서비스는 장기 실행 작업을 수행하거나 원격 프로세스에 대한 작업을 수행합니다. 서비스는 어떤 UI도 제공하지 않으며, 사용자의 입력으로 백그라운드에서 실행됩니다. 예를 들어 사용자가 다른 앱에있는 동안 서비스가 백그라운드에서 음악을 재생하거나 사용자가 Android 기기와 상호 작용하지 못하도록 인터넷에서 데이터를 다운로드 할 수 있습니다.
  3. 콘텐츠 제공 업체 : 콘텐츠 제공 업체가 공유 앱 데이터를 관리합니다. 앱에 데이터를 저장하는 네 가지 방법이 있습니다. 파일에 기록하고 파일 시스템에 저장하거나, SQLite 데이터베이스에 삽입하거나 업데이트하거나, 웹에 게시하거나, 앱이 액세스 할 수있는 다른 영구 저장 위치에 저장할 수 있습니다 . 콘텐츠 제공 업체를 통해 다른 Apps는 데이터를 쿼리하거나 수정할 수 있습니다. (예 : Android 시스템은 권한이있는 모든 앱이 연락처를 쿼리 할 수 ​​있도록 사용자의 연락처 정보를 관리하는 콘텐츠 제공 업체를 제공합니다.) 또한 콘텐츠 제공 업체는 더 나은 데이터 무결성을 위해 앱에 비공개 인 데이터를 저장하는 데 사용할 수 있습니다.
  4. 방송 수신기 : 방송 수신기는 방송 (예 : 화면 꺼짐, 배터리 부족 등) 또는 Apps (예 : 다른 앱에서 일부 데이터가 수신되었음을 알리는 방송)에 시스템 응답입니다. 장치에 다운로드하여 사용할 수 있음). 방송 수신기에는 UI가 없지만 상태 표시 줄에 알림을 표시하여 사용자에게 경고 할 수 있습니다. 일반적으로 방송 수신기는 앱의 다른 구성 요소에 대한 게이트웨이로 사용되며 주로 활동과 서비스로 구성됩니다.

안드로이드 시스템의 한가지 특징은 어떤 앱이라도 다른 앱의 구성 요소를 시작할 수 있다는 것입니다 (예 : 전화를 걸거나 SMS를 보내거나 웹 페이지를 열거 나 사진을보고 싶다면 이미 그 앱이 있습니다. 동일한 작업에 대한 새로운 활동을 개발하는 대신이를 사용하십시오.)

시스템이 구성 요소를 시작하면 해당 응용 프로그램에 대한 프로세스가 시작됩니다 (아직 실행 중이 아니면 안드로이드 시스템에서 한 번에 하나의 포 그라운드 프로세스 만 실행할 수 있음). 그리고 해당 구성 요소에 필요한 클래스를 인스턴스화합니다. 따라서 구성 요소는 해당 App이 속한 프로세스에서 실행됩니다. 따라서 다른 시스템의 앱과 달리 Android 앱에는 단일 진입 점이 없습니다 ( main() 메소드가 없음).

시스템은 각 앱을 별도의 프로세스로 실행하기 때문에 하나의 앱은 다른 앱의 구성 요소를 직접 활성화 할 수 없지만 Android 시스템은 직접 활성화 할 수 있습니다. 따라서 다른 응용 프로그램의 구성 요소를 시작하려면 하나의 응용 프로그램이 해당 구성 요소를 시작할 의도를 지정하는 메시지를 시스템에 보내야합니다. 그러면 시스템이 해당 구성 요소를 시작합니다.

문맥

android.content.Context 클래스의 인스턴스는 애플리케이션을 실행하는 Android 시스템에 연결을 제공합니다. 컨텍스트의 인스턴스는 프로젝트의 리소스와 앱의 환경에 대한 전역 정보에 액세스하는 데 필요합니다.

소화하기 쉬운 예를 들어 보겠습니다 : 호텔에있어 식사를하고 싶다고 생각하십시오. 당신은 룸 서비스를 호출하고 당신에게 물건을 가지고 오거나 물건을 정리하도록 요청합니다. 이제이 호텔을 Android 앱으로 생각하십시오. 활동으로 나옵니다. 룸 서비스 직원은 룸 서비스, 음식 품목 등 호텔 리소스에 대한 액세스를 제공하는 컨텍스트입니다.

그러나 다른 예를 들자면, 식당에 테이블에 앉아 있고, 각 테이블에는 교환 원이 있습니다. 교환 원에게 그렇게하도록 요청한 음식 품목을 주문하고 싶을 때가 있습니다. 그러면 승무원이 주문을하고 음식 품목이 테이블에 제공됩니다. 다시이 예에서 레스토랑은 Android App이며, 테이블 또는 고객은 App 구성 요소이며 음식 아이템은 App 리소스이며 상담원은 귀하의 상황이므로 음식 아이템과 같은 리소스에 액세스 할 수있는 방법을 제공합니다.

위의 구성 요소 중 하나를 활성화하려면 컨텍스트의 인스턴스가 필요합니다. 위의 내용 만이 아니라 거의 모든 시스템 리소스 (보기 (나중에 설명 함)를 사용하여 UI 만들기, 시스템 서비스 인스턴스 만들기, 새로운 활동 또는 서비스 시작)에는 모두 상황이 필요합니다.

자세한 설명은 여기 에 쓰여 있습니다 .

AVD (Android 가상 장치) 설정

TL; DR 기본적으로 실제 기기를 시뮬레이션하고 실제 기기없이 앱을 테스트 할 수 있습니다.

Android 개발자 문서 에 따르면,

Android 가상 장치 (AVD) 정의를 사용하면 Android 에뮬레이터에서 시뮬레이트하려는 Android Phone, Tablet, Android Wear 또는 Android TV 장치의 특성을 정의 할 수 있습니다. AVD Manager를 사용하면 AVD를 쉽게 만들고 관리 할 수 ​​있습니다.

AVD를 설정하려면 다음 단계를 수행하십시오.

1. 이 버튼을 클릭하면 AVD Manager가 나타납니다 :

AVD 관리자 아이콘

2. 다음과 같은 대화 상자가 나타납니다.

AVD 관리자 대화 상자

3. 이제 + Create Virtual Device... 버튼을 클릭하십시오. 이렇게하면 가상 장치 구성 대화 상자가 나타납니다.

가상 장치 구성 대화 상자

원하는 장치를 선택합니다, 다음을 클릭합니다 Next :

시스템 이미지 선택

5. 에뮬레이터 용 Android 버전을 선택해야합니다. 당신은 또한 클릭하여 먼저 다운로드해야 할 수도 있습니다 Download . 버전을 선택한 후 Next 클릭하십시오.

고급 설정

6. 여기에서 에뮬레이터의 이름, 초기 방향 및 프레임 주위에 프레임을 표시할지 여부를 입력하십시오. 이 모든 것을 선택한 후에 Finish 클릭하십시오.

7. 이제 앱을 시작할 수있는 새로운 AVD가 준비되었습니다.

AVD



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow