자바 Java

프로젝트 구조

코드버무려 2014. 7. 23. 09:37


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는 여러 가지 파일 중에 하나



  1. 레이아웃 꾸밈
    • <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가 가장 쉽고 정교하다. 문제는 모든 화면이 똑같이 나와서 쓰지 않는다.
    • 보통 리니어나 레러티브 레이아웃을 사용한다.