Every time I create new project i get this error:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.

-->

Start Android Studio, close any open project.

On the right side, click on Configure -> Settings.

On the left side, in Compiler->Gradle set VM Options to "-Xmx512m" (without quotes)

Press OK, then create a project. Worked for me.

Posted by 옥탑방람보
,
  1. 메뉴
    1. 옵션메뉴 - 하나의 액티비티는 하나의 옵션매뉴를 가질 수 있다. 단말기의 메뉴버튼을 누르면 나타난다. 단말기에 버튼이 있는 갤럭기 같은 경우 홈버튼 왼쪽이 메뉴버튼이고, 단말기에 없는 것은 화면의 오른쪽 상단에 쩜쩜쩜 부분이 메뉴버튼이다.
    2. 컨텍스트 메뉴 - 특정 뷰를 길게 누르면 화면에 나타난다. 뷰 객체마다 이 메뉴를 달 수 있다. 사용자가 메뉴가 있는지 길게 누르기 전에는 알 수 없다. 리스트 메뉴에서는 컨텍스트 메뉴 사용해도 됨. 사용자가 알고 있음.
    3. 팝업메뉴 - 특정 이벤트때 메뉴를 띄우게 한다. 메뉴 위치도 변경할 수 있다.
    4. alt+enter 에서 모듈 import 시 동일한 모듈에 v7이 있는 것은 최소 2.2 이상 지원일때 이것을 사용함. 4.0 이상이라면 v7없는 것을 고르면 됨, v7는 하위버전에서 동작가능하도록 라이브러리를 만든것임 v7 잇는 것이 기능이 더 적을 수 있음. v7 없는 것은  OS에서 라이브러리를 사용하는 것임.
    5. 액션바에 보이게 하는 것은 android:showAsAction 임. 2.2 이상일 경우 app:showAsAction 사용. android는 os에 있는 라이브러리 사용. app은 어플에 잇는 라이브러리를 사용한다는 의미
    6. ifRoom은 액션바에 공간이 허락되면 액션바에 표시하고 부족하면 옵션 메뉴항목에 표시
    7. withText는 액션바에 공간이 있으면 메뉴 타이틀을 표시
    8. always는 액션바 공간상관없이 액션바에 표시 . 공간부족하면 표시되지 않음.
  2. 어뎁터뷰
    1. ListView, ExpandableListView, GridView, Spinner, Gallery, AutoCompleteTextView
    2. ListView - 여러항목을 수직으로 표시하는 위젯, 가장 많이 사용됨
    3. ExpandableListView - 접었다가 폈다가 할 수 있는 ListView
    4. GridView - 격자형태의 리스트뷰 (한줄에 여러항목 배치가 가능)
    5. Spinner - 터치하면 리스트항목이 팝업으로 나타남
    6. Gallery -  이미지를 좌우로 스크롤. 현재는 사용되지 않음. 메모리 과사용. 대신 ViewPager 라는 것을 사용함
    7. AutoCompleteTextView - 검색시 자동완성기능. 자동완성추천 단어를 직접 입력해둠.
Posted by 옥탑방람보
,
  1. 문서 - developer.android.com
    1. Training 부분 - 기초적인 내용
    2. API Guide 부분 - API 설명
    3. Sample 부분 - 샘플 데이터 설명 - 실제 샘플데이터는 이곳에서 설명된 부분 우측상단의 download 클릭하여 다운로드 받을 수 있고, SDK Manager를 통해 각 안드로이드 버전별 "Samples for SDK" 를 통해 다운로드 받을 수 있다.
    4. Reference 부분
      1. XML Attribute
        1. Attribute Name: XML에서 사용하는 속성값
        2. Related Method: 자바코드에서 같은 기능으로 사용할 수 있는 메소드
    5. google services - 안드로이드에서 사용할 수 있는 구글 서비스들이 있음 구글맵등..
  2. 기본위젯
    1. 모든 view는 onclick 속성을 가진다.
    2. 텍스트뷰 - 문자열을 표시하는 목적
      1. TextSize
        1. dp: 액정크기에따라 크기 설정 (대부분 dp사용)
        2. sp: 단말기에 설정된 폰드크기에 따라 설정됨
        3. pt: 1/72 인치 값 (ms word에서 사용하는 글자 크기와 동일)
      2. textColor
        1. 0~F 값 지정
        2. a: alpha 투명도, r: red, g: green, b: blue
        3. #rgb
        4. #argb
        5. #rrggbb
        6. #aarrggbb
      3. XML에서 불러오는 방법
        1. 다국어지원 편함
        2. XML을 설치할때 기계어로 변경 - 보안
    3. 이미지뷰 - 이미지를 표시하는 목적
    4. 버튼
      1. 버튼의 이벤트는 OnClinkListener 사용
      2. 버튼의 경우에만 리스너 사용하지 않고 속성값을 지정하여 사용할 수 있음 (오직 버튼 즉 터치의 경우에만 개발자 편리를 위해 제공함)
    5. 이미지뷰
      1. 안드로이드 앱에 기본으로 25MB 메모리 할당함 -> 무한대로 늘리기 위해서는 AndroidManifest 파일에 largeHeap 을 true 로 하면 무제한으로 사용가능함. 기본 할당 사이즈도 커짐.
      2. 이미지는 모두 네모임
      3. jpg: 압축, 투명색X, 표현 색상이 무제한임 -> 사진에 적당
      4. png: 압축, 투명색, 네모지만 투명색지원으로 아이콘등에 사용가능 -> 디자인한 이미지에 적당
      5. gif: 기본으로 제공하지 않음. 애니 돌아가는 lib 사용해야함 (github.com)
      6. bmp: 압축X, 용량이 약 10배 큼. 3D 게임에 적당(압축하지 않아 속도 빠름)
    6. 이미지파일
      1. xhdpi 단말기 경우 xhdpi 안에 이미지 있는지 봄 없으면, 제일 비슷한 해상도 폴더로 가서 찾음. 자기보다 작은 쪽을 먼저 찾음 (이미지 축소의 경우 많이 깨짐)
      2. drawable 그냥 폴더에는 보통 XML로 만든 이미지를 넣는 곳임
    7. res 폴더
      1. res 아래 폴더는 파일 이름이 중요함 하지만 values 아래는 파일이름은 상관 없음. 안에 XML tag가 중요함.
      2. 규칙
        1. 폴더 이름은 정해져 있다.  - drawable, layout, menu, values, xml 등
        2. 파일이름은 모두 영문소문자로 작성
        3. 파일 이름의 첫글자는 영문이어야 함. (R.java 변수명으로 사용됨)
        4. 확장자가 다르더라도 같은 폴더에서 같은 이름은 사용하면 안됨, (R.java 에서 하나의 변수만 생성되어 구분이 안됨)
  3. 레이아웃
    1. 리니어레이아웃
      1. 방향성가지고 배치하는 레이아웃 (제일 많이 사용), 한줄에 하나씩 배치됨
      2. 가장 중요한 배치 방향을 결정하는 것은  orientation 속성이다. orientation 속성값이 지정되지 않거나 horizontal로 설정되면 가로로 배치되고 vertical로 설정되면 세로로 배치된다.
    2. 릴레이티브레이아웃 - p215
      1. 부모의 레이아웃 기준으로 정렬 - layout_alignParentLeft 자기의 왼쪽을 부모의 왼쪽에 맞춤
      2. 다른 뷰의 기준으로 다양하게 정렬 - 다른 뷰의 아이디 값을 이용
      3. layout_alignBaseline - 지정된 다른 뷰의 베이스라인을 기준으로 정렬함. 베이스라인은 4줄로 구분하여 아래에서 2번째 줄임. 특히 정렬해야할 뷰에 폰트 크기가 서로 다를때 이를 사용하여 정렬함
    3. 차일드 영역분할
      1. layout_weight 속성은 남은 영역을 얼마나 차지할 것인가를 결정하는 비율값
      2. 레이아웃에서 이 속성이 잇는 것이 아니라 레이아웃내 배치된 뷰에 속성값에 보면 있다. 두 뷰에서 1과 2로 각각 주게 되면 남은영역을 3등분하여 첫번째 꺼에 1을 두번째 꺼에 2를 주어 크기를 조절한다.

'Mobile' 카테고리의 다른 글

Android App 개발 과정 - 1일차  (0) 2014.12.15
Posted by 옥탑방람보
,

 

  1. 안드로이드 역사
    • 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)
  2. 안드로이드 4가지 구성요소
    1. 액티비티 - 화면을 가진 실행단위
    2. 서비스 - 백그라운드로 실행 화면 없음
    3. 방송 수신자 (BR) - 리스너로, OS에 의해 브로드캐스팅된 메시지를 받음. App은 아무 실행 안하다가 브로드캐스팅 된 메시지가 있으면 OS가 해당  App을 실행함 - 예, 배터리사용확인 어플
    4. 콘텐츠 제공자 (CP) - 안드로이드에는 기본 RDB가 하나 설치되어 잇음. A가 데이터를 제공한다면 A는 CP가 됨. A가 제공한 데이터를 B 어플이 OS를 통해 사용할 수 있도록 함.
  3. 안드로이드 개발 환경 세팅
    • 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
  4. Android와 iOS의 차이
    1. iOS는 GPU사용, 레티나 디스플레이에 core를 사용 따라서 iOS는 버벅거림 없음. 안드로이드는 외형상 스펙이 높으나 GPU사용 하지 않아 그래픽 처리에 버벅거림 후에 개선됨.
  5. 예제
    1. 홈 .android 삭제
    2. Android Studio (AS) 실행
    3. package 이름은 전세계에서 유일해야함
    4. blank activity 선택 (예제들은 Github.com에 많이 있음)
    5. App -> 실행 -> launch emulator - workspace 선택
  6. 시뮬레이터
    1. 아이콘 중 AVD Manager 선택하면 시뮬레이터 생성/삭제/수정 가능함
  7. 단말기에서 테스트
    1. 단말기 통합USB 드라이버 설치함 (제조회사에서 다운로드)
    2. 설정 - 디바이스정보 - 빌드번호 부분 막누름 - 앞으로하면 개발자옵션이 나옴 - 개발자옵션 - USB디버깅 클릭 - 폰 연결하면 폰에서 허용할지 메시지 나옴 - 허용
    3. 장치관리자에서 연결된 단말기가 정상적인 장치로 나와야 함 (기타장치에 나오면 안됨)
  8. 파일/폴더
    1. AndroidManifest.xml 설정 파일
    2. src/ 밑에 작업한 자바파일
    3. app/build/generated/source/~~/R.java 자동생성
    4. app/build/outputs/apk/ apk파일
    5. res/ 리소스파일 - 미디어, XML 등. 지칭만하면 됨
    6. assets/ - res에 들어가지 못하는 모든 파일, 직접 읽어주어야함
  9. 난독툴 - Android proguard : 코드가 변경되어 분석을 어렵게 함. 개발후 배포전에 반드시 실행
  10. Android 첫화면 실행
    1. AndroidManifest.xml 파일에서
      1. android:versionName : 업데이트시 반드시 변경해야함
      2. minSdkVersion: API Level을 표기 최소 지원할 안드로이드 버전
      3. android:icon - 어플의 아이콘이미지
      4. android:lable - 어플의 아이콘 아래 이름
      5. action android:name="android.intent.action.MAIN 이름인 액티비티를 제일 먼저 실행함 이이름을 가진 액티비티가 첫 화면임 딱 1개만 가능 여러개일경우 최상위의 것만 실행 (참고 4요소 각각에 이름을 붙일수 있다. 이것은 외부 다른 어플에서 사용가능하게 하기 위함)
      6. android:anme=".MainActivity" 여기서 . 은 현재 어플이라는 의미 MainActivity는 클래스파일이름. 첫화면실행시 android.intent.action.MAIN 액티비티에서 MainActivity 클래스를 호출함  MainActivity 내 OnCreate 메소드 (생성자) 실행함. OS가 어플실행시 여기까지 해줌.
    2. MainActivity.java에서
      1. OnCreate 실행 (처음한번 자동 실행)
        1. 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 값이 있음 - 자동으로 생성함
    3. 위젯: 자기만의 기능을 가진것 - 버튼, 텍스트뷰,에디트 ..
      1. 뷰그룹: 컨테이너, 뷰의 집합, 레이아웃
      2. 뷰속성 - id 값은 하나의 XML 파일내에서 중복되어서는 안됨
      3. layout_width, layout_height 의 속성값으로 match_parent, wrap_content, 상수 크기 값이 들어갈 수 있다.
      4. match_parent : 부모의 주어진 크기 다 채움
      5. wrap_conent : 내용물의 크기에 맞춤
      6. 가로/세로 값을 위 값 주는 것에 따라 크기 달라짐.
      7. 단위를 dp 사용하면 해상도 상관없이 같은 크기로 보여주게 할 수 있다.
      8. padding 자기 자신의 내부 여백을 지칭
      9. margin 자기 자신의 외부 여백을 지칭함

 

'Mobile' 카테고리의 다른 글

Android App 개발 과정 - 2일차  (0) 2014.12.16
Posted by 옥탑방람보
,