- 안드로이드 역사
- 1.0 Applie Pie - API Level 1
- 1.1 Banana Brade - 2
- 1.5 CupCake - 3 - 세계최초 상용버전
- 1.6 Donut - 4
- 2.0 Eclair - 5
- 2.2 Froyo - 8 - 성능이 2~5배 향상됨 - 갤럭시S가 처음 탑재함
- 2.3 ~ 2.3.4 Ginger Bread - NFC
- 3.0 Holo Design - 새로운 UI등장, 4.4버전까지 사용됨
- 4.0~4.0.3 Icecream Sandwich - 최초 통합 OS, 모든 단말기에 같은 OS사용
- 4.1 ~ 4.3 Jelly Bean 운영체제 속도 최적화(Project Butter - 메모리사용에서 코드, 그래픽 사용영역을 유동적으로 변경함) - 버벅거림 없어짐
- 4.4 Kitkat
- 5.0 Lollipop - Material Design(보이는 부분을 여러 층으로 나눔 - 3D같은 효과), 다시 단말기에 따라 운영체제 나눔 (Android, Android ware, Android TV, Android auto)
- 안드로이드 4가지 구성요소
- 액티비티 - 화면을 가진 실행단위
- 서비스 - 백그라운드로 실행 화면 없음
- 방송 수신자 (BR) - 리스너로, OS에 의해 브로드캐스팅된 메시지를 받음. App은 아무 실행 안하다가 브로드캐스팅 된 메시지가 있으면 OS가 해당 App을 실행함 - 예, 배터리사용확인 어플
- 콘텐츠 제공자 (CP) - 안드로이드에는 기본 RDB가 하나 설치되어 잇음. A가 데이터를 제공한다면 A는 CP가 됨. A가 제공한 데이터를 B 어플이 OS를 통해 사용할 수 있도록 함.
- 안드로이드 개발 환경 세팅
- jdk설치 - 1.8 www.oracle.com
- java 환경변수 설정 - JAVA_HOME=C:\Program Files\Java\jdk1.8.0_25
- Android 개발 IDE 설치 - developer.android.com
- SDK 매니저를 이용한 패키지 설치
- IDE는 반드시 실행되지 않은 상태에서
- SDK Manager 실행 - 관리자로 실행
- Install packages
- Android와 iOS의 차이
- iOS는 GPU사용, 레티나 디스플레이에 core를 사용 따라서 iOS는 버벅거림 없음. 안드로이드는 외형상 스펙이 높으나 GPU사용 하지 않아 그래픽 처리에 버벅거림 후에 개선됨.
- 예제
- 홈 .android 삭제
- Android Studio (AS) 실행
- package 이름은 전세계에서 유일해야함
- blank activity 선택 (예제들은 Github.com에 많이 있음)
- App -> 실행 -> launch emulator - workspace 선택
- 시뮬레이터
- 아이콘 중 AVD Manager 선택하면 시뮬레이터 생성/삭제/수정 가능함
- 단말기에서 테스트
- 단말기 통합USB 드라이버 설치함 (제조회사에서 다운로드)
- 설정 - 디바이스정보 - 빌드번호 부분 막누름 - 앞으로하면 개발자옵션이 나옴 - 개발자옵션 - USB디버깅 클릭 - 폰 연결하면 폰에서 허용할지 메시지 나옴 - 허용
- 장치관리자에서 연결된 단말기가 정상적인 장치로 나와야 함 (기타장치에 나오면 안됨)
- 파일/폴더
- AndroidManifest.xml 설정 파일
- src/ 밑에 작업한 자바파일
- app/build/generated/source/~~/R.java 자동생성
- app/build/outputs/apk/ apk파일
- res/ 리소스파일 - 미디어, XML 등. 지칭만하면 됨
- assets/ - res에 들어가지 못하는 모든 파일, 직접 읽어주어야함
- 난독툴 - Android proguard : 코드가 변경되어 분석을 어렵게 함. 개발후 배포전에 반드시 실행
- Android 첫화면 실행
- AndroidManifest.xml 파일에서
- android:versionName : 업데이트시 반드시 변경해야함
- minSdkVersion: API Level을 표기 최소 지원할 안드로이드 버전
- android:icon - 어플의 아이콘이미지
- android:lable - 어플의 아이콘 아래 이름
- action android:name="android.intent.action.MAIN 이름인 액티비티를 제일 먼저 실행함 이이름을 가진 액티비티가 첫 화면임 딱 1개만 가능 여러개일경우 최상위의 것만 실행 (참고 4요소 각각에 이름을 붙일수 있다. 이것은 외부 다른 어플에서 사용가능하게 하기 위함)
- android:anme=".MainActivity" 여기서 . 은 현재 어플이라는 의미 MainActivity는 클래스파일이름. 첫화면실행시 android.intent.action.MAIN 액티비티에서 MainActivity 클래스를 호출함 MainActivity 내 OnCreate 메소드 (생성자) 실행함. OS가 어플실행시 여기까지 해줌.
- MainActivity.java에서
- OnCreate 실행 (처음한번 자동 실행)
- setContentView(R.layout.activity_main) - R은 res 폴더를 의미함. res/layout/activity_main.xml을 지칭함. 또한 app/build/generated/source/r/debug/com/../R.java 파일에 보면 R 클래스가 있고 layout 매소드가 있고 activity_main 값이 있음 - 자동으로 생성함
- 위젯: 자기만의 기능을 가진것 - 버튼, 텍스트뷰,에디트 ..
- 뷰
- 뷰그룹: 컨테이너, 뷰의 집합, 레이아웃
- 뷰속성 - id 값은 하나의 XML 파일내에서 중복되어서는 안됨
- layout_width, layout_height 의 속성값으로 match_parent, wrap_content, 상수 크기 값이 들어갈 수 있다.
- match_parent : 부모의 주어진 크기 다 채움
- wrap_conent : 내용물의 크기에 맞춤
- 가로/세로 값을 위 값 주는 것에 따라 크기 달라짐.
- 단위를 dp 사용하면 해상도 상관없이 같은 크기로 보여주게 할 수 있다.
- padding 자기 자신의 내부 여백을 지칭
- margin 자기 자신의 외부 여백을 지칭함
'Mobile' 카테고리의 다른 글
Android App 개발 과정 - 2일차 (0) | 2014.12.16 |
---|