develpoerandroid.com
1. 프로젝트 구조
1) src ( Source ) : *.java
2) gen ( Generated ; 자동으로 생성된..... ) : R.java는 res(resource)에 있는 내용을 주소로 가지고 있다. 자동으로 동기화한다. 단점으로는 모든 자원이 올려져서 처음 로딩 속도가 느리다.
3) Android 4.4.2 : android .jar 이 코어 라이브러리 (용량이 커서 앱에 포함할 수 없다. 스맛폰에 이미 있다.)
3)-1) Android Private Livraries & Android Dependencies 는 개발자(?)가 만든 것
4) Assets : gen 에 있는 자원 resource와는 다르게 모든 자원이 메모리에 올라가지 않는다.
필요로 할때 객체를 만들어서 사용할 수 있다.
+id 클래스의 id는 특별한 경우라 플러스기호가 붙었다
5) bin 최종 결과물은 ****.apk임 (서명 있음--마켓에 올릴 수 있음, 서명 없음--마켓에 못올림)
6) libs : 도움 기능 모듈 (다른 개발자가 필요에 따라 만들어 놓음). 폰에 없음.
7) res ( Resource )
-- drawable--xxdpi : dot per inche
-- layout : *.xml
Build ( Compile + Runtime )
최신해상도
800 * 400,
1280 * 720
1920 * 1080 (hdpi)
하위에 폴더를 만들 수 없다. 그러나 4) Asset에는 하위 폴더를 만들 수 있다.
여기 자원은 파일이름을 대문자 사용할 수 없다(안드로이드 규칙에 어긋남).
숫자가 앞에 나롤수 없다(자바 규칙에 어긋남).
한글 안됨(안드로이드 규격에 불합치).
API level :하위호환성(낮은 버젼에서 개발한 것이 상위 버젼에서 돌아감)이 좋와짐. (예외: 보안 문제가 있는 것은 낮은 버젼임에도 하위호환성이 없을 수 있다.)
오프라인에서도 볼수 있계 SDK하위에 API가 있다.
.xml은 두가지가 있다. 시스템이 정해놓은 것과 그렇지 않은것.
8) AndroidManifest.xml : 앱의 설명자 파일 예) 구성요서, 퍼미션,....
activity 는 화면 단위로서 여기서 등록을 해주어야한다.
9) 난독화 시키는 파일 : proguard는 여러 가지 파일 중에 하나
- 레이아웃 꾸밈
- <html> </html> 루트 엘리먼트
- XML속성은 자바 메소드와 맵핑되어있다.
- 유지보수를 위해서 xml 사용이 좋다.
- 프로그램에서는 꼭 상속관계를 말하지 않는다.
- 예) 상 위에 숫가락 밥그릇 과 쟁반이 있다. 밥상은 부모, 숫가락과 밥그릇은 차일드.
- 이를 배치의 부모 자식이라 한다.
- -LinearLayout 은 밥상이다.
- xml & html 을 마트업 Markup 랭귀지다.
- xml : 데이터 자체를 어떻게 꾸며 줄것인지 해주는 것
- 버튼 테그 <Button>이 객체가 될 때 엘리먼트다.
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="버튼1" />
- ctrl+shift 누르면 속성 자동화기능을 볼 수 있다.
- ㅣ묘ㅐㅕㅅ_
- layout_width 의 layout_같은 속성은 부모로 부터 받음.
- ㄱㄷrelativeLaytout는 기준이 첫번째 버튼.
- 모든 버튼은 기준이 필요하다.
- 중첩레이아숭을 만들 수 있다. 종류가 다른 레이앗끼리도 사용가능.
- xpdlqmf 테이블의 가장 중요한 역할은 하나로 합치는 것이다.
- UI는 두 가지다. 하이레벨과 로우레벨이 있다. 로우레벨은 아무것도 없는 상태에서 만든다.
- friendlayout 가 FrameLayout의 부모다
- absolutelayout가 가장 쉽고 정교하다. 문제는 모든 화면이 똑같이 나와서 쓰지 않는다.
- 보통 리니어나 레러티브 레이아웃을 사용한다.