영감을 (inspire) 주고픈 개발 블로그

안드로이드 개념, 구현, 공부할 것들 정리 링크 본문

카테고리 없음

안드로이드 개념, 구현, 공부할 것들 정리 링크

inspire12 2018. 1. 23. 16:12

-. 안드로이드 스튜디오 단축키 

https://medium.com/@joongwon/android-studio-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%A0%95%EB%A6%AC-557733f5a5a

 안드로이드 코드 위치 즐겨찾기 

http://mainia.tistory.com/5095


-. 로그캣 보기 (에러 확인의 시작)

 alt 6 


-. 안드로이드 개발력 향상 

http://www.kmshack.kr/2017/02/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EA%B0%9C%EB%B0%9C%EB%A0%A5-%ED%96%A5%EC%83%81%ED%95%98%EA%B8%B0/


-. 안드로이드 파일 구조와 xml 과 java 의 이해 + activity의 이해


-. activity 스택에 대한 이해 

 Intent 에 대한 이해 

 

 Intent flag Activity 사용법 

 http://tiann.tistory.com/18

 http://arabiannight.tistory.com/entry/286?category=442821


-. 안드로이드 생명주기 (기본 함수들 이해, 프로그램 실행 순서) 

http://hashcode.co.kr/questions/665/


-. 개발 원칙

 http://fishpoint.tistory.com/m/1624


-. manifest 이해하기

개념적 : http://bsnippet.tistory.com/7


--------------

배경지식

-. android 는 왜 앱 개발을 자바로 선택했는지? 

-. setContentView 고찰 http://bryant.tistory.com/80

-. Gradle 이란 ?  빌드 배포 도구 (라이브러리 다양화에 대처) http://uroa.tistory.com/64?category=635710

-. View 의 화면 출력과정 http://promobile.tistory.com/172

-. Context 란? http://arabiannight.tistory.com/entry/272

---------------

실제 구현, View 부분(+ Component)

-. namespace, 자바와 AppComponent 을 연결 

 @id와 @+id 차이  https://stackoverflow.com/questions/28193552/null-pointer-exception-on-setonclicklistener

 R.java 의 위치 http://codedragon.tistory.com/2722


-. layout 의 이해 (배치) 

  ConstraintLayout : https://blog.stylingandroid.com/constraintlayout-part-4/

  코드로 가져오기 : https://b.jy.is/android-layoutinflater/  

-. layout inflater 에 대해 
 성능 문제 때문에 complie 타임에 완성된 xml 에 대해서만 가능함

 xml로부터 레이아웃 객체를 정의하는 방법 

View 관련 
 view inflation 도중 wrap_content 때문에 짤리는( loading 이 안되는 것처럼 보이는) 문제 해결 
http://itpangpang.xyz/315
http://promobile.tistory.com/172
https://stackoverflow.com/questions/8394681/android-i-am-unable-to-have-viewpager-wrap-content

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int mode = MeasureSpec.getMode(heightMeasureSpec);
    // Unspecified means that the ViewPager is in a ScrollView WRAP_CONTENT.
    // At Most means that the ViewPager is not in a ScrollView WRAP_CONTENT.
    if (mode == MeasureSpec.UNSPECIFIED || mode == MeasureSpec.AT_MOST) {
        // super has to be called in the beginning so the child views can be initialized.
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        int height = 0;
        for (int i = 0; i < getChildCount(); i++) {
            View child = getChildAt(i);
            child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
            int h = child.getMeasuredHeight();
            if (h > height) height = h;
        }
        heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
    }
    // super has to be called again so the new specs are treated as exact measurements
    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
AppComponent 

List View 

 -. Layout 관련 정보들 : http://recipes4dev.tistory.com/46


-. Recycler list view 

http://thdev.tech/androiddev/2016/11/01/Android-RecyclerView-intro.html

 + viewholder 개념, 왜 static으로 해야하는지 

 => Nested Class를 사용하는 이유는 코드를 간단하게 표기하고 소스의 가독성과 유지보수를 높히고 싶을때 사용합니다. nested class에서 상위의 클래스의 메소드나 변수를 사용하기도 하는데요. static을 붙히면 컴파일러단에서 에러가 납니다. No enclosing instance of type에러가 나요. nested class에 static을 붙히면 static nested class라고 칭합니다. static nested class는 한곳에서만 사용하는 클래스를 논리적으로 묶어서 처리할 필요가 있을때 사용합니다.

결국 ViewHolder클래스에 static을 붙히는 이유는 상위클래스의 멤버변수나 객체를 사용하지 않겠라는 것 을 명시적으로 표시하는겁니다.
 성능 개선 

 http://www.kmshack.kr/tag/notifydatasetchanged/


https://tosslab.github.io/android/2016/04/09/MultiItemRecyclerAdapter.html

다양한 뷰를 지원

https://medium.com/@jsuch2362/android-%EA%B9%A8%EC%95%8C-%ED%8C%81-3-adapter-view-type-46b3fd071fff



안드로이드 프레임워크 핵심 서비스 


- Activity Manager : 애플리케이션의 생명주기(lifecycle)과 액티비티 스택을 제어 

- Content Provider : 애플리케이션이 다른 애플리케이션과 데이터를 게시 및 공유할 수 있게 해 준다. (연락처 앱등과 통신 가능)

- Resource Manager : 코드에 포함되지 않는 리소스(문자열, 색상 설정, 사용자 인터페이스 레이아웃 등)의 액세스를 제공한다. 

- Notifications Manager : 애플리케이션이 사용자에게 경고나 통지를 보여 줄 수 있게 해 준다. 

- View System : 애플리케이션의 사용자 인터페이스 생성에 사용되는 확장 가능한 뷰들의 집합이다. 

- Package Manager : 애플리케이션에서 장치에 설치된 다른 애플리케이션에 관한 정보를 알 수 있는 시스템이다. 

- Telephony Manager : 장치에서 사용 가능한 전화 서비스에 관한 정보 (상태나 가입자 등)를 애플리케이션에 제공한다.

- Location Manager : 앱이 위치 변경 정보를 수신할 수 있게 해 주는 위치 서비스의 액세스를 제공한다.


- adapter 


- provider


-. viewpager + fragment 사용하기 

http://itpangpang.xyz/286?category=587498


-. 


Intent 

Parcelable : intent로 Object로 넘기는 방법 

 http://hjh5488.tistory.com/30

------------------

디자인 하기 

-. style과 theme

http://rinear.tistory.com/entry/AndroidTheme-style%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80


-. 애니메이션 효과(화면 이동) 사용 

http://dwfox.tistory.com/26


-. text view 설정들 

http://docko.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-TextView%EC%97%90-%EA%B8%B4-%EB%AC%B8%EC%9E%A5%EC%9D%98-%EC%A4%84%EC%9E%84-%ED%91%9C%EC%8B%9C?category=442423


----------------


여러 안드로이드 예제 잘 설명하심

http://itpangpang.xyz/247#comment11019141


-----------------

용어들 (라이브러리 포함) 

 엑티비티


 Volly(네트워크 전송 라이브러리) 

https://ringsterz.wordpress.com/2014/12/03/volley%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-network-data-%EC%A0%84%EC%86%A1%ED%95%98%EA%B8%B0-1-simple-request-%EC%A0%84%EC%86%A1/



 마샬링(Marshalling)

전송하려는 데이터나 객체를 바이트 스트림으로 변환시키는 과정


 언마샬링(Unmarshalling)

마샬링과 반대로 바이트 스트림을 전송된 객체나 데이터로 변환시키는 과정

- 참고: 객체의 직렬화(Serialization) 과정에서 마샬링과 언마샬링 동작이 이루어진다.