BCSD 11

[Android] 난독화(Proguard)

Proguard 코드 난독화 및 APK 최적화를 위한 도구 왜 필요한가? 코드 난독화를 통해 디컴파일시 본인의 코드가 노출되는 것을 방지 불필요한 메서드를 제거하여 멀티덱스를 피할 수 있다. MultiDex? 안드로이드 앱을 구성하는 코드는 컴파일 되어 덱스(Dex) 파일로 만들어 진다. 하나의 덱스 파일은 최대 65536개 의 메소드만 참조 할 수 있다. 만약 프로젝트의 코드가 65536개의 메소드를 초과하면 여러 개의 덱스파일 이 생성된다. 멀티 덱스를 사용하여 컴파일 할 수 있지만, 빌드 과정에서 앱 내의 파일을 여러 덱스파일로 나누어야 하므로 빌드 속도가 느려지고 APK의 용량이 커진다. Proguard 와 Non-Proguard 비교하기 디컴파일러 : jadx v0.9.0 사진 위에 걸린 링크를..

Android Developer 2019.05.14

[Android] OpenSource, ButterKnife, Firebase

Open Source Open Source Library? Open Source License를 가진 Library 누구나 제한 없이 재사용, 수정, 사용 할 수 있다. 대부분의 오픈소스 소프트웨어는 GNU General Public License 를 가지고 있다. GNU General Public License는 대표적인 Open Source License 이다. ButterKnife 뷰를 쉽게 바인딩 해주는 라이브러리 1. ButterKnife Download butterknife github 에 나온 Download 가이드를 따라서 compileOptions 와 dependencies 를 추가합니다. !!!! 그런데 !!!! 이런 빌드 오류가 발생하네요....?? 그러면 오류문이 하라는대로 해보겠습..

Android Developer 2019.05.02

[Andoird] GIF를 이용한 Splash Activity 만들기

dependencies 수정 후 'sync' GIF 이미지를 'raw' 디렉토리에 저장해준다. drawable 폴더에 넣으면 안드로이드 스튜디오는 gif 파일을 인식하지 못한다. LoadingActivity.class package com.example.communityapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import com.bumptech.glide.Glide; import..

Android Developer 2019.04.12

[Android] Android Design Pattern

출처 : https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/ Intro 안드로이드 앱을 논리적 구성 요소로 체계화하려는 방법이 지속적으로 발전하였다. MVC 패턴을 초석으로 보다 모듈화되고 테스트 가능한 패턴으로 발전해 왔다. MVP와 MVVM은 MVC를 대체하기 위한 대안책이다. 하지만 개발자들은 어떤 것이 안드로이드에 적합한지 의견을 일치하지 못했다. MVC ( Model View Controller ) Model 앱의 데이터 + 상태 + 비즈니스 로직 이다. 앱의 두뇌역할이며 뷰나 컨트롤러에 묶이지 않으므로 많은 곳에서 재사용할 수 있다. View 모델의 표현 이다. 사용자가 앱과 상호작용할 때 컨트롤러와 통신하는 ..

Android Developer 2019.04.09

[Android] Foreground, Background, Timer

Foreground, Background Foreground 사용자와 상호작용이 가능한 상태의 프로세스 ( 화면에 직접적으로 보이는 프로세스) Background 겉으로는 보이지 않는 프로세스 공간 주로 'Service' 기능이 많이 실행된다. Android 8.0 (Oreo) Background Execution limits 백그라운드에서 실행되는 어플리케이션들이 기기의 리소스를 많이 소모하는 것을 개선하기 위해 제한하는 것이다. 백그라운드 서비스 제한 : 앱이 유휴 상태인 경우 백그라운드 서비스의 사용이 제한된다. 유휴상태 : 주변장치들의 입력과 출력이 없는 상태 브로드캐스트 제한 : 매니페스트에 등록한 암시적 broadcast 를 받을 수 없다. (약간의 예외는 있다) Android 8.0 이하라도..

Android Developer 2019.04.02

[Android] ListView, Navigation Drawer

ListView ( https://developer.android.com/reference/android/widget/ListView ) ListView란? 수직적으로 스크롤 할 수 있도록 뷰들을 보여주는 기능 최근 생성된 뷰는 이전에 생성된 뷰의 아래 에 위치한다. 좀 더 개선된 ListView를 구현하고 싶다면 RecyclerView 를 사용한다. ListView의 layout XML AdapterView 에서 상속 받은 객체이다. 스크롤 했을 때 새로운 뷰를 보여주는 것과 같은 기능이 필요할 때 ListAdapter 에 요청을 한다. list 안에 item 을 보여주기 위해서 setAdapter 메소드를 호출 한다. GridView RecyclerView ListView에 Flexibility 와 ..

Android Developer 2019.03.24

[Android] Fragment

Fragment 동작 또는 Activity 내에서 사용자 인터페이스의 일부 하나의 액티비티에 여러 개의 프래그먼트가 있을 수 있고, 하나의 프래그먼트를 여러 액티비티에서 사용 할 수 있다. 자체 수명 주기, 자체 입력 이벤트를 가진다. 항상 프래그먼트 내에 포함되어 있어야 하며 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. Fragment 디자인 철학 목적 : 태블릿과 같은 큰 화면에서 보다 역동적이고 유연한 UI 디자인을 지원 각 프래그먼트가 레이아웃을 따로 정의하고 자기만의 수명 주기 콜백으로 자기 나름의 동작을 정의함 재사용을 염두에 두고 디자인하며 한 프래그먼트를 또 다른 프래그먼트로부터 직접 조작하는 것은 삼가야 함. Fragment 생성 최소 구현해야 하는 ..

Android Developer 2019.03.13

[Android] Naming

Basic Naming Java Class Naming Package : 모두 소문자 로 작성한다. EX > com.sun.eng Classes : 대문자로 시작 하며, 명사형 이다. EX > class Raster Interface : 대문자로 시작 하며, 형용사형 이다. EX > interface Stroing Method : 동사형 이며, 소문자로 시작 한다. EX > run() / getBackground() Variables : 소문자로 시작 한다. EX > int i / float myWidth Constant : 모두 대문자 로 작성한다. EX > static final int MIN_WIDTH=4 Camel Case : 소문자로 시작할 경우 적용되는 작성 방식 이름이 두 가지 단어 로 혼합..

Android Developer 2019.03.01

[Android] 정의, 버전 및 특징, 액티비티

[Android] 1. 자바 기반 안드로이드 개발 언어 : 자바, 코틀린 2. 오픈 소스 안드로이드는 오픈소스 기반이며 아파치 2.0 라이센스 를 사용한다. 3. 완벽한 컴포넌트 개발자가 제공된 소스를 사용하면 스마트폰 플랫폼이 그대로 만들어지므로 그 위에 올라가는 앱만 만들면 된다. 4. 높은 점유율 5. 높은 이식성 리눅스 기반으로 높은 이식성을 가지고 있으며 새로운 하드웨어의 기능을 쉽게 연동할 수 있다. 모바일 뿐만 아니라 태블릿, PMP 등의 각종 통신 기기에 사용될 수 있다. 6. 쉬운 연동 안드로이드로 만든 앱은 다른 앱에서 제공하는 기능을 쉽게 사용 할 수 있다. [버전 및 특징] A : Apple pie - Android 1.0 안드로이드 마켓, 웹브라우저, G메일, 구글지도, 구글검색,..

Android Developer 2019.02.23

[BCSD] 2. DataStructure - 2019.01.28

자료구조 정의 전산학에서 자료를 효율적으로 이용 할 수 있도록 컴퓨터에 저장하는 방법 여러 종류가 있으며, 이러한 각각의 자료구조는 각자의 연산 및 목적에 맞추어져 있다. 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다. 분류 선형 구조 배열 : 가장 일반적인 구조 / 메모리 상에 같은 타입의 자료가 연속적으로 저장된다. 스택 : LIFO (Last In First Out) 큐 : FIFO (First In First Out) 안드로이드에서 가장 많이 쓰임 덱 : 양쪽에서 넣기와 빼기를 할 수 있는 일반화된 선형 구조 연결 리스트 연결 리스트 : 각 노드에 자료와 다음 노드를 가리키는 참조값으로 구성된다. 원형 열결 리스트 : 마지막 노드가 처음 노드를 가리키는 연결 ..

Android Developer 2019.01.28

[BCSD] 1.Git, Git-flow, OOP - 2019.01.28

Git 와 Git-flow Git 분산 소스코드 관리 방식 소스코드 주고받기가 필요 없음 병렬 개발 가능 버전 관리 용이 저장소 : 로컬 저장소, 원격 저장 체크아웃 : 특정 시점이나 브랜치의 소스코드로 이동 스테이지 : 작업한 내용이 올라가는 임시 저장 영역 커밋 : 작업한 내용을 로컬 저장소에 저장하는 과정 태그 : 커밋의 임의 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표 푸쉬 : 로컬 저장소의 내용 중 원격 저장소에 반영되지 않은 커밋을 보내는 과정 풀 : 원격 저장소에 있는 내용중 로컬 저장소에 반영되지 않은 내용을 가져오는 과정 브랜치 : 커밋을 단위로 구분된 소스코드 타임라인에서 분기해서 새로운 커밋을 쌓을 수 있는 가지를 만드는 것 병합 : 하나의 브랜치는 다른 브랜치와 ..

Android Developer 2019.01.28
반응형