05 Apr 2017
|
Android
Android Studio
안드로이드 App을 개발할 때 App Version을 소스 코드내에서 활용하고 싶을 때가 있습니다.
Eclipse의 경우에는 App Version이 manifest.xml 파일 내에 정의되어 있는데,
Android Studio에서는 build.gradle 내에 버전이 입력되어 있습니다.
build.gradle
App Version은 build.gradle 내에 다음과 같이 설정됩니다.
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
multiDexEnabled true
applicationId "com.lnc.cuppadata"
minSdkVersion 21
targetSdkVersion 25
versionCode 10
versionName "0.10"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
...
그리고 안드로이드 소스내에서 App Version을 가져오는 코드는 다음과 같습니다.
소스 코드
private String getAppVersion() {
try {
PackageInfo pInfo = getActivity().getPackageManager().getPackageInfo(
getActivity().getPackageName(), 0);
if(pInfo != null) {
return pInfo.versionName;
}
} catch(Exception e) {
e.printStackTrace();
}
return "";
}
02 Apr 2017
|
MAC OS
tree 명령어
tree는 폴더 구조를 시각적으로 알아보기 쉽게 트리 형태로 보여주는 명령어입니다. 불행히도 Mac에는 이 명령어를 제공하지 않습니다. 그래서 Homebrew를 이용해서 tree를 설치해보도록 하겠습니다.
먼저 Homebrew를 설치해야 합니다.
tree 설치는 다음 명령어를 이용해서 진행할 수 있습니다.
설치 후 tree 명령어를 수행하면 다음과 같이 폴더 구조를 트리 형태로 표현해줍니다.

01 Apr 2017
|
MAC OS
Homebrew
Mac에서 홈브류(Homebrew)는 패키지 매니저(Package Manager)로 생각하면 됩니다. ruby로 개발되어졌으며, 애플에서 제공하지는 않지만 유용한 프로그램들을 손쉽게 다운로드하고 설치할 수 있게 해주고 있습니다.

설치 방법
Homebrew를 설치하기 위해서는 먼저 CLD(Command Line Developer Tool)를 설치해야 합니다. 터미널에서 다음 명령어를 입력하면 됩니다.
그 다음에는 다음 명령어를 이용하여 Homebrew를 설치합니다.
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
최신 설치 명령어는 여기에서 확인할 수 있습니다.
설치를 시작하면, ‘Press RETURN to continue or any other key to abort’ 라는 메세지가 나오고 Return 키 를 누르면 설치가 시작됩니다.
29 Mar 2017
|
Android
Mac에서 터미널을 통해 adb 명령어를 실행하고 싶을 때가 종종 있습니다.
Windows에서는 Android SDK가 설치된 경로를 환경변수로 등록해놓으면 되는데,
Mac에서도 방법은 비슷합니다. 다만, Mac에서 Android SDK가 설치되어 있는 폴더 위치를 몰라서
Path 등록을 못하는 경우가 종종 있습니다.
Mac에서 Android SDK가 설치되는 폴더
사용자가 임의로 폴더 위치를 수정하지 않았다면, 기본적으로 Android SDK는 다음 위치에 설치됩니다.
/Users/snowdeer/Library/Android
.bash_profile 수정
환경 변수를 등록하기 위해서 .bash_profile을 수정하면 됩니다. 터미널에서 nano를 이용해서
수정을 해도 되고, 편하게 GUI 상의 텍스트편집기를 이용해서 수정을 해도 됩니다.
기본적으로 .bash_profile은 속성이 ‘숨김(Hidden)’으로 되어있습니다.
Finder에서 숨김 파일을 보기 위해서는 Finder 창 안에서 단축키 shift + command + . 을 누르면 됩니다. .bash_profile은 /User/[사용자계정] 아래에 위치하고 있습니다.
그리고 .bash_profile 내에 다음과 같은 라인을 추가합니다.
export ANDROID_PATH=/Users/snowdeer/Library/Android
export PATH=$PATH:$ANDROID_PATH/sdk/platform-tools
이제 터미널을 다시 시작하고 adb 명령어를 입력해보면 잘 실행되는 것을 확인할 수 있습니다.
27 Mar 2017
|
Android
프로그래밍을 하다보면, 리스트를 쓰는 경우는 피할 수가 없을 것입니다.
가장 많이 쓰는 것들이 일반적인 배열이나 ArrayList 들입니다. 그리고 성능이나 여러가지
장점을 위해 HashMap 등을 사용하게 되는 경우도 많은데 일반적인 배열들과 사용법이
조금 달라 혼란스러운 경우가 종종 있습니다.
물론, 구글링을 하면 바로 나오긴 하지만 나중에 좀 더 찾기 쉽게 하기 위해 여기다가
예제 코드를 작성해봅니다.
Iterator 사용
가장 기본적인 건 Iterator를 사용하는 것입니다. Iterator는 디자인 패턴 중 하나이기도 하고,
거의 모든 리스트에 적용가능할 정도로 범용적입니다. 하지만, 보통 개발자들은 Iterator 없이
단순 인덱스만 이용해서 for 문이나 while 반복문으로 접근하는 경향이 있습니다.
둘 다 문제없는 사용법이긴 하지만, 여기서는 먼저 Iterator를 이용한 접근 방법부터 살펴보도록 하겠습니다.
Map<String, String> map = new HashMap<>();
map.put("Key1", "Value1");
map.put("Key2", "Value2");
map.put("Key3", "Value3");
Iterator<String> iter = map.keySet().iterator();
System.out.println("#1. Using Iterator");
while(iter.hasNext()) {
String key = iter.next();
System.out.println(" -- " + key + ", " + map.get(key));
}
Set<String> set = new HashSet<>();
set.add("Value4");
set.add("Value5");
set.add("Value6");
Iterator<String> iter = set.iterator();
System.out.println("#1. Using Iterator");
while(iter.hasNext()) {
String value = iter.next();
System.out.println(" -- " + value);
}
for 문 사용
for 문을 사용하더라도 간단하게 조회할 수 있습니다. 다음 예제는 각각 Map과 Set에
대한 for 문으로의 접근 방법입니다.
System.out.println("#2. Using For");
for(String key : map.keySet()) {
System.out.println(" -- " + key + ", " + map.get(key));
}
System.out.println("#2. Using For");
for(String value : set) {
System.out.println(" -- " + value);
}