apk expansion 적용기

간단한 앱을 만들때는 용량이 크지 않지만 미디어 파일이 많이 내장된 게임 또는 멀티미디어 앱을 개발하면 100MB는 금새 초과한다. apk가 100MB 이상을 빌드하여 바로 구글 플레이에 업로드 할 수 있다면 편하겠지만 구글은 100MB 이상의 파일을 업로드 하기 위해서는 apk expansion 방식을 이용하여야 한다. 사용법은 아래 구글 사이트에 방문하면 자세히 나와있다. https://developer.android.com/google/play/expansion-files.html 문서를 보고 이해하려면 파악에 많은 시간이 소요된다. 맨땅에 해딩하면서 알게된 지식이 몇년 지나면 리셋 될 수 있어 일기처럼 적용기를 기록한다.(현 기록 시점도 적용 후 약 8개월 만에 작성하고 있다.) 업로드 방법 구글 플레이에 apk를 등록하고 난 후 바로 obb를 추가로 등록한다. 다운로드 방식 구글 플레이에서 앱 다운로드시 대부분 apk 와 obb가 동시에 다운로드 된다. 하지만 간혹 apk만 다운로드 되고 obb는 다운로드 되지 않는 케이스도 있다. 이때는 수동으로 다운로드를 진행하여야 한다.(직접 다운로드 구현) 외장 장치 권한 구글 플레이에서 앱 다운로드시 apk와 obb가 함께 설치된다면 외장 장치 권한은 필요 없다. 하지만 apk만 다운로드 되고 obb가 다운로드 되지 않았다면 이야기는 틀려진다. obb를 외장 장치에 다운로드 하기 위해 외장 접근 권한이 필요하다. 다운로드 받는 주체가 구글 플레이가 아닌 앱이기 때문이다. 마시멜로 이상의 운영체제에서는 외장 장치 쓰기 퍼미션 체크를 먼저 하고 퍼미션 권한이 없으면 퍼미션 권한을 선 득 한 후 다운로드를 진행하여야 한다. 외장 장치 쓰기 퍼미션은 민감한 권한으로 구글에서 별도의 약관을 고지하지 않으면 앱을 약관 위반으로 경고 메일이 온다. 파일 용도 main : 주 기능 patch : 패치 기능 파일 명명 ...

안드로이드 스튜디오 레이아웃 프리뷰에서 한글 깨짐 개선 방법

윈도우 기준 Android Studio\plugins\android\lib\layoutlib\data\fonts\fonts.xml 파일 열기 아래와 같이 내용 추가함     <family lang="ko">         <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>     </family>     <family lang="und-Zsye">         <font weight="400" style="normal">NotoColorEmoji.ttf</font>     </family>     <family lang="ko">         <font weight="400" style="normal" index="1">NanumGothic.ttf</font>     </family>

장고 서버 학습 메모

파이썬 학습을 위한 메모들 장고 서버 백그라운드 실행하기 nohup ./ manage.py runserver 10.102.30.100:8000 & 백그라운드 서버 프로세스 찾기 ps -ef | grep ./ manage.py 백그라운드 서버 프로세스 죽이기 kill -9 프로세스 id git 충돌 났을 때 돌리기 git reset --hard HEAD 1. python 설치 후 시스템 path 등록 2. pip 설치 https://pip.pypa.io/en/stable/installing/ get-pip.py 다운로드 python get-pip.py 실행 3. 가상 환경 분리 python -m pip install virtualenv python -m virtualenv web (윈도우에서 설치하였으면 path에 경로 추가) 4. 장고 설치 python -m pip install django 5. 리눅스에서 시작시 자동 실행 등록 sudo vi /etc/rc.local /[경로]/manage.py runserver 10.102.30.100:8000 추가

안드로이드 람다 적용하기

이미지
안드로이드 람다 적용하기 안드로이드에서 람다를 적용하는 방법을 정리한다. 현대의 컴파일러는 충분히 똑똑해졌다. 문장의 종결인 세미콜론(;)도 필요 없어 지고 심플한 코드를 작성하여 가독성이 더 좋은 코드를 작성할 수 있게 되었다. 자바는 타 언어에 비해 세련되지 못한듯 하지만 버전 업이 되면서 문법의 빈약함을 차츰 보완해 내는 듯 한다. 자바 8부터 람다라는 코드 규칙을 지원한다. 람다가 무엇인지 또 어떤 장점이 있는지 요약 한 후 안드로이드에 적용하는 방법을 기술하고자 한다. 람다에 대해 잘 설명한 글이 있어 링크를 첨부한다. http://www.hanbit.co.kr/network/view.html?bi_id=1961 글에서 람다를 사용하는 이유의 핵심은 아래와 같다. 비즈니스 로직 하나를 위해 틀에 박힌 코드와 의미 없는 구현을 하게 만드는 것이다. 코드를 작성하다보면 러시아 인형인 마트료시카같은 느낌이 들 때가 있다. 특정 비즈니스 로직을 한 줄 추가하기 위해 코드 블럭을 작성하고 그 내부 블럭을 다시 작성하여 모든 껍데기가 완성되면 비로서 비즈니스 로직 한 줄을 추가하여 코드를 완성한다. 별 의미도 없는 틀에 박힌 코드를 작성하고 정작 필요한 코드는 1줄로 끝날때 그 허무함을 달래줄 수 있는 대안이 람다이다. 전체적인 코드의 불필요한 분량을 효율적으로 줄여 가독성을 대폭 향상 시켜줄 수 있는 대안 또한 람다이다. 안드로이드에서 사용하기 위해서는 Gradle Plugin을 설정해야 한다. https://github.com/evant/gradle-retrolambda build.gradle 파일에 다음과 같이 추가한다. buildscript { repositories { mavenCentral() } dependencies { classpath ' me.tatarka:gradle-retrolambda:3....

nProtect 깔기 싫다...

너 없이 은행 거래 하고 싶다.

Design support library 적용사항 정리

Design support library 적용사항 정리 적용하면서 알게된 내용 디자인 support library 사용시 기본 셋팅 사항 정리 [아래 두개의 compileSdkVersion가 추가 되어야 함] compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.0' [컴파일 SDK 버전] compileSdkVersion 23 [엑티비티 테마] android:theme="@style/Theme.AppCompat"

윈도우에서 Ruby 설치 및 RubyGems 설치 방법

윈도우에서 Ruby 및 RubyGems를 설치하는 방법 윈도우에 RubyGems 설치 http://rubyinstaller.org/downloads/ 사이트로 이동하여 RubyInstaller와 DEVELOMENT KIT을 다운로드하여 설치한다. RubyInstaller는 설치 프로그램이고  DEVELOMENT KIT은 mingw32를 7zip 형태로 실행형 압축한 파일이다. 각각 설치 및 압축해제를 한다. 시작 프로그램 > Start Command Prompt with Ruby를 실행하다. mingw32가 압축해제된 폴더로 이동한다. 아래 두 명령어를 차례로 실행한다. ruby dk.rb init ruby dk.rb install