'Programming/Android'에 해당하는 글 7건

Layout element

Programming/Android 2015. 12. 25. 23:31

 

 

ViewGroup / View

 

App 은 최소 하나의 Activity 를 가지고 있다.
위의 디바이스에 보이는 화면이 하나의 Activity 이다.
Activity 는 하나 이상의 ViewGroup 으로 구성되어 있다.
ViewGroup 은 최소 하나 이상의 View 로 구성되어 있다.
ViewGroup 이 ViewGroup 을 포함할 수 있다.

 

ViewGroup 은 view 들의 집합으로 view 들의 위치를 지정한다. 대표적으로 Layout. Layout 은 ViewGroup 을 상속한다.
View 는 UI Widgets 인 TextView, Button, ImageView, ListView 등을 말한다.

 

 

ex) Blank Activity 템플릿은 Hello World 라는 텍스트가 보이는 프로젝트를 생성한다.


앱을 구동하면 AndroidManifest.xml 파일에서 지정된 Activity 를 찾아간다.

1
<activity android:name=".MainActivity" ... >
cs


액티비티 파일(MainActivity.java) 에는 activity_main.xml 의 레이아웃을 보여주도록 지정하고 있다.

1
setContentView(R.layout.activity_main);
cs


activity_main.xml 에는 ViewGroup 을 상속하는 CoordinatorLayout 으로 화면을 구성하고 있다. (생략)
상단과 하단을 제외한 컨텐츠 부분은 다른 레이아웃 파일을 불러온다.

1
<include layout="@layout/content_main" />
cs


content_main.xml 레이아웃 파일에는 <RelativeLayout> ViewGroup 과 <TextView> View 가 지정되어 있는 것을 알 수 있다.

 

 

Preview pane


Android Studio 에서는 res/layout 디렉토리의 xml 레이아웃 파일을 열어 보면 디바이스 화면이 보이는 Preview 창을 볼 수 있다.
Preview 창에서 TextView 등의 UI Widget 을 선택하면 레이아웃 파일의 소스가 선택된다.
Text 옆의 Design 창을 선택하면 Pallet 창에서 요소를 드래그하여 Design 창에 직접 넣을 수도 있다.

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Running App

Programming/Android 2015. 12. 24. 01:09

앱 구동은 간단하다.

에뮬레이터로 구동하는 방법과 실제 디바이스를 연결하여 구동하는 방법이 있지만 에뮬레이터는 너무 느려서…

하지만 원하는 디바이스에서 테스트를 해야 한다면 Launch emulator 를 선택하여 AVDM(Android Virtual Device Manager) 에서 원하는 디바이스를 선택하고 설치한다.

간단히 레이아웃만 살펴볼 거라면 Preview 패널에서 원하는 장치를 선택하여 레이아웃을 미리 볼 수 있다.

 

실제 디바이스로 구동하는 방법은 몇 가지 설정이 필요하다.

USB 케이블로 디바이스를 연결하면 자동으로 USB 드라이버가 설치되지만 설치되지 않는 경우 특히 Win7 ㅡㅡ;

디바이스 제조사 홈페이지에서 해당 USB 드라이버를 다운받아 수동으로 설치 가능하다. (부디 USB 케이블 연결하지 않은 상태에서 드라이버 설치하시길.)

디바이스 세팅에 개발자 옵션에서 디버깅 모드를 실행할 수 있도록 체크한다.

 

Android Studio 에서 앱 실행

툴바의 ▶ (Run) 표시를 클릭하고, 구동될 디바이스를 선택하면 끝.

연결된 장치에 앱이 설치될 것이고, 그 앱을 실행하여 프로젝트를 확인할 수 있다.

 

 

 

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Android Modules

Programming/Android 2015. 12. 21. 13:37

Android Project Files


Android Studio 에서 생성한 프로젝트들은 보통 다음과 같은 디렉토리 및 파일 구조를 가진다.

왼쪽 그림은 구조를 단순화 하여 gradle 기반의 작업을 쉽게 해주는 Android view 이고, 오른쪽 그림은 실제 디렉토리 구조인 Project view 이다.




.idea - IntelliJ IDEA 의 설정 디렉토리.

app - 어플리케이션 모듈 디렉토리와 파일이 포함된 디렉토리.

build - 모든 프로젝트 모듈에 대한 빌드 출력을 저장하는 디렉토리.

gradle - gradle-wrapper 파일들을 포함하는 디렉토리.

build.gradle - 응용 프로그램 모듈에서 사용하는 기본 빌드 설정 파일. 소스 버전 관리 시스템 으로 유지.

setting.gradle - 빌드할 하위 프로젝트 지정.



app/ module structure


app/build/

빌드시에 생성된 파일 및 디렉토리 포함.

app/libs/

private 라이브러리 포함.

app/src/

ActivityName.java 등 .java, .aidl 파일 같은 다른 모든 소스 코드 파일들 포함.


app/src/androidTest/

JUnit 테스트 프레임워크를 확장한 소스코드, 리소스 포함.


app/src/main/java/com/project/app/

Activity 자바 소스 파일 포함.

app/src/main/res/

drawable 파일 같은 어플리케이션 리소스 파일 포함.

app/src/main/res/drawable/

PNG, JPEG, GIF 같은 비트맵 이미지 파일들 포함.

app/src/main/res/mipmap/

앱에 설치될 런처 아이콘 포함. 디바이스의 해상도에 따라 mipmap-xxxhdpi 같은 디렉토리들에서 리소스 제공.

app/src/main/res/layout/

화면 레이아웃으로 컴파일될 XML 파일들 포함.

app/src/main/res/menu/

어플리케이션 메뉴를 정의하는 XML 파일들 포함.

app/src/main/res/values/

res 디렉토리의 다른 리소스들과는 달리, 이 디렉토리의 리소스는 파일 이름으로 참조될 수 없고, R class 를 사용하여 컨트롤.

app/src/main/res/AndroidManifest.xml

어플리케이션의 Activities, Service, Intent receivers, content providers, permission, API level, 외부 라이브러리등을 정의.


app.iml

IntelliJ IDEA 모듈

build.gradle

응용 프로그램 모듈에서 사용하는 기본 빌드 설정 파일. 소스 버전 관리 시스템 으로 유지.

proguard-rules.pro

proguard 설정 파일



Android Modules


Android SDK 는 우리가 만들 프로젝트가 올바르게 컴파일되고 패키징 될 수 있도록 특정한 구조를 따를 것을 요구하고 있지만, Android Studio 를 사용하면 자동으로 그 구조를 만들어 준다. 새 프로젝트와 모듈들을 생성하기 위해 Android Studio 를 사용하면, 프로젝트에 꼭 필요한 파일과 디렉토리들을 자동으로 생성한다. 

module 은 특정 타입의 소스 코드와 리소스를 캡슐화한 최소 단위이다.


Android Application Modules


안드로이드 어플리케이션 모듈은 소스 코드, 리소스 파일, 어플리케이션 설정 파일을 포함한다.

이 모듈의 컨텐츠들은 디바이스에 설치될  .apk 파일로 빌드된다.


Test Modules


이 모듈은 프로젝트를 테스트하는 코드를 포함하고, 디바이스에서 실행되는 테스트 어플리케이션으로 만들어진다.

기본적으로 Android Studio 는 JUnit 테스트를 위해 androidTest 모듈을 생성한다.


Library Modules


이 안드로이드 프로젝트에서 참조할 수 있는 공유 가능한 Android 소스 코드와 리소스를 포함한다.

재사용 가능한 공통 코드를 유용하게 쓸 수 있다.

이 모듈은 장치에 설치될 수 없지만, 런타임시 .apk 파일에 포함된다.


App Engine Modules


이 모듈은 백엔드 개발을 위한 앱 엔진 자바 서블릿 모듈로, 백엔드 기능을 쉽게 추가할 수 있게 한다. 

클라우드로 사용자 데이터 백업, 클아이언트 앱으로 자료 전송, 실시간 상호 작용, GCM(Google Cloud Messageing) 을 통한 푸시 알림 등이 백엔드 기능이다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

New Project

Programming/Android 2015. 12. 16. 20:24

안드로이드 앱 개발을 시작할 때 툴(Android Studio)에서 제공하는 프로젝트 생성 단계를 거친다.
이 단계마다 항목에 설정하는 대로 기본 파일들이 구성된다.

 

 

프로젝트 만들기

 

1. Application Name : 사용자에게 표시되는 응용 프로그램 이름. ex) myApp
2. Company Name : 회사 도메인. 패키지 이름에 추가됨. ex) oops4u.com
3. Package name : Java 의 패키지 같은 프로젝트의 고유 이름. ex) com.oops4u.myapp
4. Project location : 프로젝트가 위치할 로컬 디렉토리.

 

5. Select the form factors your app will run on : 앱이 실행될 기기 선택 (Phone and Tablet)
6. Minimum SDK : 앱 개발에 필요한 최소 SDK. API 8: Android 2.2 (Froyo) 선택.
7. Add an activity to <template> : 템플릿 선택. ex) Blank Activity

 

8. Activity Name : ex) MainActivity
9. Layout Name : ex) activity_main
10. Title : 상단바 제목
11. Menu Resource Name : menu_main
12. Finish

 

 

위 단계를 거쳐 프로젝트를 생성하고 나면 앱 실행에 필요한 파일들이 자동으로 생성된다.

 

6. Minimum SDK 의 경우 이전 버전을 지원할수록 많은 사용자들이 이용할 수 있고, 최신 버전으로 설정하면 새로운 기능을 활용할 수 있다.
8. Activity 는 안드로이드 앱에서 눈에 보이는 하나의 페이지 파일이라고 생각하면 된다. 여기서 설정한 이름대로 activity java 파일이 생성될 것이다.
9. Layout 은 Activity 에 보여질 요소들을 배치하는 뷰그룹으로 xml 파일로 생성된다.

 

 

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Android Studio 의 거의 쓸모없을 에뮬레이터.
하지만 오류는 용납할 수 없다.
언제나처럼 10시간 삽질하고 1분만에 해결한다.

 

[File] - [Invalidate Cached / Restart...] - [Invalidate and Restart]

 

 

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,