본문 바로가기

Android/Android관련 이것 저것..12

ConstraintLayout 알아보기 ConstraintLayout 알아보기 ConstraintLayout에 대하여 샘플 코드와 함께 알아보도록 하겠습니다. 목차 Table of Contents ConstraintLayout이란? 복잡한 레이아웃을 단순한 계층 구조를 이용하여 표현할 수 있는 ViewGroup입니다. 즉 복잡한 계층구조로 레이아웃을 구성하는 방식에서 자유로워질 수 있습니다. 형제 View들과 관계를 정의해서 레이아웃을 구성한다는 점이 RelativeLayout과 비슷하지만, 보다 유연하고 다양한 기능을 제공합니다. ConstrinatLayout을 사용하면 어떤점이 좋을까?? 복잡한레이아웃 계측구조를 단순히 구성하여 작성할 수 있습니다. 자식뷰 간의 상호관계를 정의가능합니다 ex) 두 View를 위 아래로 컨테이너 중앙에 배치.. 2019. 11. 16.
View가 그려지는 과정 알아보기 View가 그려지는 과정 알아보기 view는 포커스를 얻으면 레이아웃을 그리도록 요청합니다. 이때 레이아웃의 계층 구조중에 rootView를 제공해야합니다. 따라서 그리기는 루트 노드에서 시작되어 전위 순회방식으로 그려집니다. 부모뷰는 자식뷰가 그려지기전에 그려지고, 형제뷰는 전위방식에 따라 순서대로 그려지게 됩니다. 레이아웃을 그리는 과정은 measure단계와 layout 단계를 통해 그려지게 됩니다. LifeCycle 알아보기 addView 함수를 호출했을때 위 그림과 같은 순서로 콜백함수가 실행되게 됩니다. 1. Constructor 모든 뷰는 생성자에서 출발하게됩니다. 생성자에서 초기화하고 ,default값을 설정합니다. 뷰는 초기설정을 쉽게 세팅하기 위해서 AttributeSet 이라는 인터페이.. 2019. 10. 2.
OOM Killer ,LMK OOM Killer ,Low Memory Killer OOM Killer와 LOM Killer에 대하여 알아보고 , 어떤것이 더 안드로이드 환경에 적합한지도 알아보도록 하겠습니다. OOM Killer - linux kernel의 메모리 부족시 메모리 확보를 하는 process - src 위치 : mm/oom_kill.c 시스템 구동중 메모리가 부족하면 운영체제 내부의 우선순위 알고리즘에 의해 프로세스를 죽입니다. 리눅스 커널은 프로세스의 메모리 할당시 남은 메모리가 없는 상황을 처리하기 위해 OOM(Out of Memory) Killer 를 가지고 있습니다. 그 것은 모든 프로세스를 어떤 제약으로 점수를 매겨 init을 제외한 최고 점수의 프로세스는 죽여 메모리를 확보한다. 따라서 일반적으로 서버를 운영.. 2019. 9. 10.
AppBundle 알아보기 AppBundle 알아보기 App Bundle이란 ?? 모든 코드 , 리소스 CPU 아키텍처와 메타데이터를 압축한 ZIP파일입니다. App Bundle을 빌드하면 .aab파일이 생성됩니다. 빌드된 aab 파일을 Play Store에 업로드하면 Play Store가 각 기기에 최적화된 APK 를 빌드합니다.(Dynamic Delivery) 즉 앱을 실행하는데 필요한 코드와 리소스만 다운르도하여 사용합니다(Dynamic Delivery) App Bundle 구조 살펴보기 App Bundle은 코드(dex) , 라이브러리(lib) , 리소스(res)..등 모든 데이터가 포함되어있습니다. 개발자가 App Bundle 파일을 PlayStore에 업로드 하면 , PlayStore는 미리 aab파일에서 아키텍처, D.. 2019. 9. 5.
안드로이드 스튜디오 단축키 안드로이드 스튜디오 단축키 안드로이드 공식 document↓ https://developer.android.com/studio/intro/keyboard-shortcuts?hl=ko 설명Windows/LinuxMac일반모두 저장Control + SCommand + S동기화Control + Alt + YCommand + Option + Y편집기 최대화/최소화Control + Shift + F12Control + Command + F12즐겨찾기에 추가Alt + Shift + FOption + Shift + F현재 프로필로 현재 파일 검사Alt + Shift + IOption + Shift + I빠른 전환 구성표Control + ` (역따옴표)Control + ` (역따옴표)설정 대화상자 열기Control +.. 2019. 3. 10.
안드로이드 디버그 - 중단점 걸기 중단점 걸기우선 확인하고 싶은 라인에 중단점을 걸어 앱 실행을 일시 중지합니다. 중단점을 거는 방법은 라인 옆의 빈공간을 클릭 하거나 단축키 (Command+F8 / Control+F8)를 클릭합니다. 아래 이미지의 라인 옆의 빨간 점이 중단점입니다. 앱이 실행 중일 때 오른쪽 상단의 Attach debugger to Android process를 클릭해 디버깅 모드를 실행할 수 있습니다. 앱이 실행 중이지 않을 때 Debug ‘app’ 버튼 또는 단축키(^D)를 클릭해 디버깅 모드를 실행합니다. 앱이 실행되다가 단점을 만나면 아래와 같이 앱은 일시중지될 겁니다. 이때 디버깅 탭의 도구들을 사용해서 앱의 상태를 확인할 수 있습니다. 만약 Variables 영역이 보이지 않으면, 1번 영역에서 Restor.. 2019. 2. 13.
안드로이드 타이틀바와, 스테이터스바 없애기( FULL SCREEN) ,WindowManager 안드로이드 스테이터스바 없애기( FULL SCREEN) 안드로이드앱에서는 아래처럼 상태바와 타이틀바가 있습니다 . 상태바는 최상단에 위치하며, 상태를 나타내는 바입니다.푸시알림, 소리, 와이파이, 시간등등 안드로이드 폰 자체내의 App상태는 나타냅니다. 타이틀바는 자신이 만든 앱의 제목을 나타내는 바입니다.색상도 자유롭게 선택 가능하고 버튼도 넣을수 있습니다 . 이러한 타이틀바와 스테이터스바를 없앨려면 어떻게 해야할까요 ? 1) 타이틀바 없애기 styles.xml @color/colorPrimary @color/colorDarkBlue @color/colorAccent false true \AppTheme은 기본 스타일입니다 .여기에 windowActionBar false와 windowNoTitle tr.. 2019. 2. 4.
안드로이드 multidex 문제 해결하기 안드로이드 multidex 문제 해결하기 안드로이드에서 앱 개발을 하다 규모가 커지게 되면 코드도 많아지고 라이브러리도 많아지게 됩니다.이럴때 빌드시 오류가 발생하게 됩니다. trouble writing output: Too many field references: 131000; max is 65536. You may try using --multi-dex option. 이 오류는 65536(64K)개 이상의 함수(Method)를 초과할 경우에 발생 합니다. 안드로이드에서는 JAVA의 class 를 사용하지 않고 class -> dex로 변환하여 사용하고 있습니다. 즉, java에서는 MainActivity.java를 컴파일 하면 MainActivity.class 생성되는데 이를 다시 MainActivi.. 2019. 2. 1.
안드로이드 앱런처 만들기 안드로이드 앱런처 만들기안드로이드 런처(Launcher)란 안드로이드 OS환경에서 홈 화면의 인터페이스를 관리하는 하나의 앱이라고 정의할 수 있습니다. 앱런처를 만드는방법은 간단합니다실행되는 처음 액티비티에android:launcMode="singleTask"intent-filter에내용을 추가해주면 작성한 앱이 앱런처로 작동하게 됩니다. 예) 2019. 1. 29.
Retrofit 사용하기 출처 - Retrofit 한글문서 http://devflow.github.io/retrofit-kr/ Retrofit은 HTTP API를 자바 인터페이스 형태로 사용할 수 있습니다.public interface GitHubService { @GET("/users/{user}/repos") Call listRepos(@Path("user") String user); }Retrofit 클래스로 GitHubService 인터페이스를 구현하여 생성합니다.Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .build(); GitHubService service = retrofit.create(GitHubService.clas.. 2019. 1. 23.
Gson 라이브러리 사용하기 Gson 라이브러리 사용하기Gson은 java Object를 JSON 표현으로 변환하는데 사용할 수 있는 java 라이브러리입니다. JSON 문자열을 java객체로 변환하는데도 사용할 수 있습니다. 주요기능기본형 변환 지원클래스 변환 지원제네릭 지원, List , Map 등 콜렉션을 변환 할 때 유용멀티스레드 지원, Gson 내부 상태를 갖지않아 Thrad-safe이다빠르고 가볍다. Serialize보다 좋음 생성하기//JavaGson gson=new Gson()//Kotlinvar gson=Gson() 형변환 (Java->Json)gson.toJson(short, int, long, float, double, String, Object) 형변환 (Json->java)gson.fromJson(json문자.. 2019. 1. 22.
개발을 빠르게하는 안드로이드 단축키 개발을 빠르게하는 안드로이드 단축키 1)Find Action (검색)[CTRL]+[SHIFT]+[A]안드로이드 스튜디오의 거의 모든 기능을 검색할 수 있습니다. 2)자동완성[CTRL]+[SPACE]문자열을 바탕으로 예측하는 기본적인 자동완성 기능입력한 문자열을 보고 자동완성 후보를 예측해 보여줍니다. 3)현재 위치 자료형을 바탕으로 자동완성[CTRL]+[SHIFT]+[SPACE]자료형을 이용한 자동완성 기능.인수를 입력할때 자동완성을 통해 인수 자동완성 4) 오류수정 Quick Fix[Alt]+[Enter] 5)현재 구문 완성[CTRL]+[SHIFT]+[ENTER]현재 구문을 완성할 수 있습니다. 코드를 정렬하면서 세미콜론이나 {}를 입력해주고 다음에 입력해야 하는 곳까지 이동합니다. 6) 매개변수 정보.. 2019. 1. 20.