Android 사용 방법

Post date: Sep 1, 2013 11:25:47 AM

[2020-1학기] Android Studio Version = 3.5.3, API 27 (Oreo), 64-bit, Nexus 5: 강의의 연속성을 위해 이 Version만 사용하고 Update하지 않습니다.

[2018-2학기] Android Studio Version = 3.1.4, API 27 (Oreo), 64-bit, Nexus 5

[2018-1학기] Android Studio Version = 3.0.1, API 25 (Nougat), 64-bit, Nexus 5

[2017-2학기] Android Studio Version = 2.3.3, API 25

[2017-1학기] Android Studio Version = 2.3, API 19

[2016-2학기] Android Studio Version = 2.1.3, API 19

[2016-1학기] Android Studio Version = 1.5.1, API 19

[2015-2학기] Android Studio Version = 1.3.2, API 19

[2015-1학기] Android Studio Version = 1.1, API 19

[2014-2학기] Android Studio Version = 0.8.11

[2013-2학기] Android Studio Version = 0.2.7

Android Studio는 아래 링크에서 무료로 내려받을 수 있다.

- Download: http://developer.android.com/sdk/installing/studio.html

[설치 방법]

1. Android Studio 설치 전에 Java가 설치되었는지 반드시 확인해야 한다. 잘 모르면 고민하지 말고 아래 JDK(Java Development Kit)를 먼저 깔아라.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

    • Java SE(Standard Edition)을 설치해야 한다.
    • 내 PC가 32-bit인지 64-bit인지 확인해서 깔아라.

2. JDK 설치 후 Android Studio를 깔면 된다. 일반적인 설치 과정과 동일하다.

  • 반드시 "관리자 권한"으로 설치해야 한다.
  • 관리자 권한 없이 설치하면 나중 New Project 생성시 문제가 된다.

http://developer.android.com/sdk/installing/studio.html

3. New Project를 이용해 아무 Project든지 생성해서 SDK를 깔아야 한다.

  • Tools > Android > SDK Manager를 실행한다.
    • Tools에 있는 Android SDK Tools, Android SDK Platform-tools, Android SDK Build-tools의 최선 Version을 선택해 설치한다.
    • Extras에 있는 것은 Android Support Repository, Android Support Library, Google USB Driver만 설치한다.
    • 다양한 버전의 Android API를 선택해서 install한다.
    • 이때 Android API를 빨리 깔려면 SDK Platform, ARM EABI v7a System Image, Google APIs만 깔면 된다.

혹시 SDK Manager 실행이 안되면 "C:\Program Files (x86)\Android\android-studio\sdk"로 찾아들어가서 "SDK Manager.exe"를 직접 실행한다.

[실행이 안 될 때]

1. JVM(Java Virtual Machine) 없음

- JDK 먼저 깔고 Android Studio 깔아라.

- 이렇게 해도 동일한 문제가 발생하면 다음처럼 하라.

    • 컴퓨터 > 속성 > 고급 시스템 설정 > 환경변수로 들어가라.
    • "새로 만들기"를 이용해 새로운 변수 JAVA_HOME을 현재 설치된 JDK Folder로 설정하라.
    • 예를 들면 JAVA_HOME = C:\Program Files\Java\jdk1.7.0_25

- JDK를 설치해도 Android Studio가 계속 설치를 요구하는 경우(AS Version 1.3.2 경우)

    • Path 설정이 잘못된 경우이므로 "File > Project Structure"에 들어가서 JDK location을 현재 PC에 설치된 JDK Path로 재설정 필요

2. 폴더 접근 권한 없음

이 경우는 Android Studio 실행할 때 "관리자 권한"으로 해야 한다. 다음부터는 그냥 더블클릭하면 된다.

3. New Project 생성 실패

- Android Studio 설치후 AS 0.2.7을 바로 update하면 SDK 설치가 되지 않아 New Project 생성에 실패한다(2013-09-10).

  • 이 경우 아래와 같은 경고가 뜬다.
  • You must install the Android Support Repository through the SDK Manager.
  • 해결책1: Android Studio를 모두 지우고 다시 설치한 후 update하지 말고 SDK Manager를 실행해 SDK를 설치해야 한다. 이후에는 update하더라도 문제가 없다.
    • 해결책2: 이전에 만든 Project를 복사해서 Open Project를 이용해 IDE로 들어가 SDK Manager를 실행한다.
    • 해결책3: "C:\Program Files (x86)\Android\android-studio\sdk"로 찾아들어가서 "SDK Manager.exe"를 직접 실행한다.

- 관리자 권한으로 Android Studio를 설치하지 않으면 Gradle 생성시 문제가 발생하여 New Project가 생기지 않는다(2013-09-10).

  • 이 경우 아래와 같은 경고가 뜬다.
  • Failed to import Gradle project: Could not fetch model of type 'IdeaProject' using Gradle distribution.
  • 해결책: Android Studio를 모두 지우고 "관리자 권한"으로 다시 설치한다.

4. SDK update 실패

이 경우는 폴더 접근 권한이 없어서 생긴 것이므로 "관리자 권한"으로 Android Studio를 실행해서 update하면 해결된다.

5. 한글 지원 안됨

- 한글을 쓰려면 Android 4.1.2를 설치해야 한다. Android 4.1.2는 Tools > Android > SDK Manage로 들어가서 Android 4.1.2를 선택한 다음 [Install packages]를 누르면 된다[1].

- AVD(Android Virtual Device)를 Nexus4 API Level 16으로 설정해야 한글이 출력된다.

- 왼쪽 Project 창에 있는 build.gradle (Module:app)에 아래 코드를 삽입해야 한글 메시지가 정상적으로 출력된다.

// AS Version 1.2 이후

android {

...

compileOptions.encoding = 'ISO-8859-1'

}

// AS Version 1.2 미만

tasks.withType(Compile) {

options.encoding = 'UTF-8'

}

6. 그래도 계속 안되는 경우

- Android Studio와 충돌되는 program을 삭제한다. 아래는 현재까지 발견된 충돌 program 목록이다.

    • Bigfoot Networks Killer Network Manager

7. Local path doesn't exist

- Android Studio version 문제로 가끔씩 uploading이 안 되는 경우가 생긴다. 이때는 존재하지 않는 경로를 내가 수동으로 내 컴퓨터에 만들어주면 해결된다.

[App이 내 Smartphone에서 실행이 안 될 때]

1. Smartphone 개발자 옵션 설정

- 설정 > 개발자 옵션 > USB 디버깅을 선택하여 디버깅 모드가 실행되도록 한다.

[Hot Keys]

- Type hierarchy: Ctrl+H

- Quick help document: Ctrl+Q

- Quick information viewer: Ctrl+Shift+I

- Android reference: Shift+F1

- Basic declaration: Ctrl+B

- Basic completion: Ctrl+Space

- Statement completion: Ctrl+Shift+Enter

- Current Java class: Ctrl+F12

- Ctrl 누르기: 해당 class 특성 보기, 마우스로 누르면 해당 class 선언으로 이동

- Quick command search for all: Ctrl+Shift+A

- Add import: Alt+Enter

- New class or member: Alt+Insert

- Override method: Ctrl+O

- Implement method: Ctrl+I

- Auto-indent line: Ctrl+Alt+I

- Reformat lists of codes: Ctrl+Alt+L

- Reformat file: Ctrl+Alt+Shift+L

- Run: Shift+F10

[Tips]

- VCS 기능 제거

    • File > Settings > Plugins에서 "VCS"를 검색해 모두 제거함

[Chart]

- Android Studio 설정

    • build.gradle (Project)
allprojects {

repositories {

maven { url "https://jitpack.io" }

}

}
    • build.gradle (Module)
dependencies {

implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

}

- 사용 방법: https://github.com/PhilJay/MPAndroidChart/wiki

- LineChart sample

    • activity_main.xml 설정

<com.github.mikephil.charting.charts.LineChart

android:id="@+id/myChart"

android:layout_width="match_parent"

android:layout_height="300dp"

android:layout_marginTop="200dp"

app:layout_constraintTop_toTopOf="parent"/>

    • MainActivity 설정
    • onCreate()

protected LineChart lineChart;

protected ArrayList<Entry> lineEntry;

lineChart = (LineChart) findViewById(R.id.myChart);

lineEntry = new ArrayList<>();

lineEntry.add(new Entry(0, (float) Math.sin(0)));

lineEntry.add(new Entry(0.1f, (float) Math.sin(0.1f)));

LineDataSet lineDataSet = new LineDataSet(lineEntry, "Sine chart");

lineDataSet.setDrawValues(false);

lineDataSet.setDrawCircles(false);

lineDataSet.setDrawFilled(true);

lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);

LineData lineData = new LineData(lineDataSet);

lineChart.getDescription().setText("Write comments.");

lineChart.getDescription().setTextSize(15.f);

lineChart.getXAxis().setTextSize(15.f);

lineChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);

lineChart.getAxisLeft().setTextSize(15.f);

lineChart.getAxisRight().setEnabled(false);

lineChart.getLegend().setTextSize(15.f);

lineChart.setData(lineData);

      • OnClickListener(): data 추가 기능

nPos++; float x = nPos/10.f;

lineEntry.add(new Entry(x, (float) Math.sin(x)));

LineDataSet lineDataSet = new LineDataSet(lineEntry, "Added sine chart");

LineData lineData = new LineData(lineDataSet);

lineChart.setData(lineData);

lineChart.notifyDataSetChanged();

lineChart.invalidate();

      • 좌표축 이름은 주로 TextView로 설정
        • 90도 회전 원하면 android:rotation 이용
        • 크기 키우려면 android:textSize 이용

- 추후 점검 예정

[참고문헌]

- https://android-arsenal.com/

- http://www.dongwun.com/tc/173

- http://androidhuman.tistory.com/entry/Android-Studio%EB%A5%BC-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90-1-%EC%A3%BC%EC%9A%94-%ED%8A%B9%EC%A7%95-%EB%B0%8F-%EB%B9%8C%EB%93%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C

- Firebase Android Series: Firestore

- Exploring Firebase MLKit on Android: Face Detection (Part Two)