전체 글 95

[Android] APK 용량 줄이기

APK Size 줄이기 1. ProGuard 를 사용하자. ProGuard 는 사용하지 않는 Java 코드를 제거해준다. Code foot prints 를 줄이는데 굉장히 효과적이다. 2. Split Apk 사용하자. 특정 해상도나, ABI 에 따라 별도 Apk 를 만들 수 있다. 특히 앱 사이즈를 크게 줄여준다. 3. 최종 Apk(+ProGuard) 이후에 Facebook's ReDex 를 이용해 최적화 하자. Code Size 도 줄여줄 뿐만 아니라, 잠재적인 성능향상에도 도움이 된다. 4. 사용하지 않는 XML files 를 확인하자. Lint 같은 툴들이 사용하지 않는 리소스를 체크하고 지워준다. 5. 최대한 Resource 를 줄이자. Gradle 의 shrinkResources 를 사용..

Android Developer 2019.10.08

[인터네트워킹] 2. 기본 네트워크 구축

Packet Tracer 를 이용하여 LAN, WAN 구축하기 Topology WAN LAN 개수 : 2개 (192.168.20.0/24 , 192.168.22.0/24) 라우터(2811) 설정 하드웨어 : WIC-2T 모듈 2개 장착 외부망 케이블 : DCE 케이블 내부망 케이블 : Copper Straight IP 설정 Router0 Port Router0(1) 192.168.20.254/24 FastEthernet 0/0 192.168.22.254/24 192.168.21.1/24 Serial 0/0/0 192.168.21.2/24 192.168.23.1/24 Serial 0/1/1 192.168.23.2/24 LAN 스위치 Vlan1 : 192.168.X.253/24 PC1 : 192.168.X...

KoreaTech 2019.09.12

[인터네트워킹] 1. 인터네트워킹 개요

인터네트워킹 장비 스위치(Switch) 와 라우터(Router) 스위치(Switch) 라우터(Router) L2(DataLink) 계층 L3(Network) Frame 데이터 단위 Packet MAC Address(6Byte) 주소 체계 IP Address(4Byte) 필터링 // LAN 길이 확장 (내부망 연결 담당) 기능 라우팅 // 원거리의 LAN/MAN/WAN 연결 (외부망 연결 담당) 전달 브로드캐스트 처리 차단 네트워크 장비 동작 영역 Name Hub Bridge Switch Router Topology Collision Domains 1 4 4 4 Broadcast Domains 1 1 1 4 Collision Domains : Bridge, Switch, Router 는 데이터 필터링 기능..

KoreaTech 2019.09.11

[IOT프로그래밍] Chapter 2 : Introduction to HyperText Markup Language : PART 1

2.1 Introduction HTML(HyperText Markup Language) HyperText : 평문 이상의 데이터(비디오, 오디오 등등) Markup Language : 시작과 끝 을 표현하는 언어 2.2 Markup Languages HTML Markup 의 특징 모든 태그들이 인터프리터(브라우저)에 저장되어 있다. 모든 태그들은 닫힘이 있어야한다. Not Case Sensitive : 대문자 소문자 구분하지 않는다. 2.3 Editing HTML HTML Source Code HTML 문서는 텍스트 에디터 를 통해 만들 수 있다. Notepad(WIN), Vi(UNIX), Atom 등등 HTML 인터프리터는 Line by Line 으로 문법 검사를 하며 만약에 발생하는 문법 오류를 무시..

KoreaTech 2019.09.10

[Android] AsyncTask

AsyncTask Added in API level 3 public abstract class AsyncTask extends Object java.lang.Object -> android.os.AsyncTask Intro UI Thread(Main Thread) 어플리케이션의 프로세스를 실행하는 쓰레드 화면 구성 담당 : Button, TextView 등의 UI 구성 요소를 생성 및 조작할 때 상호작용하는 쓰레드 시간이 오래 걸리는 작업은 UI 쓰레드로부터 분리하여 별도의 쓰레드에서 실행 하는 것이 좋다.(UI쓰레드 지연 및 차단 방지) Android UI 도구는 쓰레드로부터 세이프하지 않다. 따라서 UI 쓰레드가 아닌 쓰레드에서는 UI 구성요소를 조작하지 않는다. AsyncTask UI 쓰레드 를 적..

Android Developer 2019.08.02

[Android] Task 와 Back Stack

[ActivityBackStack] Task 특정 작업을 수행할 때 사용자와 상호작용하는 액티비티들의 모음 액티비티들은 실행된 순서대로 스택에 쌓인다. 이 스택을 백스택 이라고 한다. Example - 새 메시지의 목록을 보여주는 액티비티 하나를 가지는 이메일 앱 사용자가 메시지를 선택하면 해당 메시지를 보여주는 새 액티비티가 실행되고 백스택에 PUSH 된다. 사용자가 뒤로가기 버튼을 누르면 방금 열린 액티비티가 종료되고 스택에서 POP 된다. 다중 창 지원 환경(7.0 이상) 에서 어플리케이션들이 동시에 실행될 때, 시스템이 각 창마다 task들을 분리하여 관리 한다. 각 창은 여러 태스크를 가질 수 있다. (Chromebooks 에서 실행되는 안드로이드 앱의 경우도 마찬가지이다) 기기의 홈 화면은 대..

Android Developer 2019.07.15

[Android] Log

[Log] Log 로그 출력을 담당하는 API 일반적으로 Log.v(), Log.d(), Log.i(), Log.w(), Log.e() 메서드를 사용한다. logcat 창에서 로그들을 볼 수 있다. 자세한 정보의 순서는 ERROR, WARN, INFO, DEBUG, VERBOSE 이다. VERBOSE : 개발 할 때 를 제외하고 응용 프로그램에 컴파일 해서는 안된다. DEBUG : 컴파일되지만 런타임에 제거 된다. ERROR, WARN, INFO : 항상 보관 된다. 클래스 내에서 TAG 상수를 선언하는 좋은 예시 private static final String TAG = "MyActivity"; Log.v(TAG, "index=" + i); Log.d 로 전달할 문자열을 작성할 때 컴파일러는 Stri..

Android Developer 2019.07.10

[Android] Activity의 LaunchMode

LaunchMode 액티비티 실행시 쌓이는 액티비티 스택에 대한 운영 방식 을 설정하는 모드 이다. 하나의 액티비티 스택 == 태스크 ( Task ) == 백스택 모드에 따라 하나의 태스크 또는 여러 개의 태스크에서 어플리케이션이 실행될 수 있다. LaunchMode는 총 4개이며, manifest의 activity 요소의 android:launchMode 속성으로 지정할 수 있다. 액티비티에 LaunchMode 값을 지정하지 않는다면 기본 값인 standard 가 들어가게 된다. 다중 인스턴스 지원 여부에 따른 분류 지원 有 : standard, singleTop ( singleTop 은 조건부 지원 ) 대부분의 액티비티에 대한 일반적인 시작 지원 無 : singleTask, singleInstance..

Android Developer 2019.07.10

Ant, Maven

Ant ( Apache Ant ) ANT : Another Neat Tool ( 또 다른 균형잡힌 도구? ) 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구 자바 프로젝트들을 빌드하는데 표준으로 사용된다. 빌드를 위한 환경구성을 XML 파일을 사용한다. ( 기본적인 빌드 파일명 : build.xml ) Maven 공식 문서 : http://maven.apache.org/what-is-maven.html 공식문서를 번역하여 정리하기로 하였다. Maven : 이디시어(유대어의 일종)에서 비롯된 말로써, 지식 축적기 라는 의미이다. Maven 의 기능 1. 쉬운 빌드 프로세스 ( Making the build process easy ) Maven은 빌드 프로세스의 근본적인 메커니즘을 세세히 알..

카테고리 없음 2019.07.08

[Android] 난독화(Proguard)

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

Android Developer 2019.05.14
반응형