반응형

OS: Windows 7 (64-bit)


윈도우7 PC와 구글 글래스를 USB로 연결하면 처음에는 카메라의 외장 메모리처럼 인식을 한다.

구글 글래스 내부 설정에서 디버깅 옵션을 켜도 드라이버 설치를 제대로 안 하면 안드로이드 기기로 인식이 안돼서 개발한 앱을 설치하려고 해도 안드로이드 스튜디오 또는 ADT에서 인식이 안 된다.



<구글 글래스 USB 드라이버 설치 방법>

(사실 다른 안드로이드 기기에도 공통적으로 해당됨)


1. 안드로이드 스튜디오 또는 ADT 개발환경이 있다면

SDK Manager에서 "Extras > Google USB Driver"가 설치되어 있는지 확인한다. 

Not installed로 나오면 체크하고 설치한다.




2. 설치하고 나면 아래 경로에 드라이버가 받아진다.

안드로이드 스튜디오의 경우: 

  [윈도우7의 사용자 폴더]\AppData\Local\Android\sdk\extras\google\usb_driver

ADT 개발환경의 경우: 

  [adt-bundle의 폴더 위치]\sdk\extras\google\usb_driver


3. "제어판 > 시스템 > 장치 관리자" 실행. 그 다음 제대로 설치되지 않아서 노란색 느낌표가 붙은 안드로이드 기기(구글 글래스는 "Glass 1")를 오른쪽 단추로 선택하고 "드라이버 업데이트" 선택.


4. 사용자가 드라이버 위치를  지정하는 옵션으로 선택하고, SDK Manager를 통해서 받은 USB 드라이버 경로를 선택하면 새로 드라이버 설치를 진행하게 된다.



장치 관리자에서 Android Composite ADB Interface로 표시되면 정상적으로 설치된 것이다.

이제 기기를 USB에 연결한 채로 안드로이드 스튜디오 또는 ADT를 실행해서 LogCat을 확인했을 때, 로그가 잘 표시되면 정상이고, 개발한 앱을 실행할 수 있다.





반응형
블로그 이미지

Bryan_

,
반응형

OS: Windows 7 (64-bit)

Java 버전: 1.8.0_45 (amd64)

Android Studio 버전: 1.2.2


기존에 쓰던 Eclipse 기반의 ADT 개발 환경은 구글에서 더이상 지원을 하지 않겠다고 해서 안드로이드 스튜디오를 설치했다. 안드로이드 스튜디오를 맨 처음 설치하고 나서 SVN을 통해서 기존의 프로젝트를 받아 오려고(checkout) 시도해 보니 잘 되지 않았다.


일단 SVN을 통해서 프로젝트를 받아오기 위해서는 메뉴에서 "File > New > Project from Version Control > Subversion"을 선택하면 되지만,




SVN 주소를 추가하고 세부 프로젝트 선택을 위해서 접근을 했더니, 아래 화면과 같이 빨간 글씨로 경고 메세지만 나왔다.




저렇게 뜨는 이유는 내 컴퓨터에 별도의 SVN 프로그램이 없기 때문이다. 즉, 안드로이드 스튜디오는 SVN 인터페이스는 제공하지만 SVN 기능을 수행하는 프로그램(플러그인)은 기본적으로 내장하고 있지 않다. 이것은 버전 컨트롤 목록에 있는 Git 등의 다른 도구도 마찬가지인 듯 하다.


반면에 컴퓨터에 SVN이 이미 설치되어 있다면 아무 에러 없이 checkout까지 가능할 것이다. 가령 Tortoise SVN을 설치해 두었고, 커맨드 라인(cmd)에서 svn 명령어가 인식이 된다면 문제없이 진행된다.



이에 따라 내 컴퓨터에는 별도로 SVN을 설치해야 한다.윈도우에서는 Tortoise SVN이 유명하지만, 윈도우가 시작할 때 항상 실행되고, 마우스 오른쪽 단추를 누르면 나오는 메뉴에도 항상 표시되기 때문에 비설치 방식을 선호하는 사람들도 있다.


비설치 방식 중에서는 Apache Subversion command line tools를 쓸 수 있으며, 아래 링크에서 받을 수 있다.

https://www.visualsvn.com/downloads/

"Apache Subversion command line tools"를 다운로드 받고, 적당한 위치에 압축을 풀어 둔다.


그리고 "File > Settings" 메뉴를 선택해서 대화상자를 열고, Version Control > Subversion을 선택한다.




오른편에 "Use command line clinet: " 옆에 그냥 svn이라고만 적혀 있는데, 그 부분을 방금 압축을 풀었던 위치에 있는 bin/svn.exe 파일의 경로로 바꿔 준다. 오른쪽 끝의 [ ... ] 버튼을 눌러서 선택할 수 있다.




경로가 올바로 설정되고 나면 Apply, OK를 눌러서 설정을 저장하고 나서 다시 SVN 접근을 시도해 보면 잘 되는 것을 확인할 수 있다.




반응형
블로그 이미지

Bryan_

,
반응형

*개발 도구: Eclipse ADT Plugin (Android Developer Tools)

*자바(Java) 버전: 1.8.X


개인적으로 아직까지는 이클립스(Eclipse)에 플러그인 형태로 이미 안드로이드 개발 환경이 덧붙여진 툴을 선호하는 탓에, ADT에서 안드로이드 앱 개발을 하고 있다.

Play Store에 개발자 등록을 하고 나서 그냥 [프로젝트 이름]/bin/ 디렉토리에 있는 APK 파일을 바로 업로드하면, 아래와 같은 메세지를 보이면서 진행이 되지 않는다.


업로드 실패

zip 정렬되지 않은 APK를 업로드했습니다. APK에 zip 정렬 도구를 실행한 다음 다시 업로드해야 합니다.


저런 식으로 표현을 하니까 사실 무슨 의미인지 잘 와닿지 않지만, 대략 전자 서명을 받은 (digitally signed) 앱만 배포 가능하다는 조건인 것 같다. Android Studio에서 Digital Sign 과정을 거치고 zip 정렬이 된 APK 파일을 만드는 방법은 아래 구글 공식 페이지에 적혀 있다.


http://developer.android.com/tools/publishing/app-signing.html#debug-mode


그 외에 zipalign 이라는 콘솔 프로그램을 활용하는 방법도 같이 설명되어 있지만, 아쉽게도 내가 쓰고 있는 ADT 환경에서의 방법은 설명되어 있지 않고 (아마 ADT가 구형이라서 더 지원하지 않는 것일 지도...), zipalign 이라는 프로그램 역시 ADT 내부에 있는 sdk 디렉토리를 찾아봐도 없다.


ADT 환경에서 좀더 쉽게 zip 정렬하는 방법을 찾아본 결과, 아래와 같이 할 수 있다.



(1) 배포하려는 안드로이드 프로젝트 아이콘의 오른쪽 단추를 눌러서 뜨는 메뉴에서 "Export..."를 누르고, Android > Export Android Application 선택.




(2) 배포하고자 하는 안드로이드 프로젝트 이름을 선택하고,




(3) Keystore를 선택해서 암호를 입력한다.

Keystore가 없을 경우, "Create new keystore" 항목을 선택하고 새로운 암호와 함께 만들면 된다.

Location은 안드로이드 앱 배포를 위한 keystore 파일을 보관하기 좋은 위치 아무 곳이나 상관이 없고, (필자는 ADT 플러그인 폴더 내부에 keysotre 라는 위치를 새로 만들었다.) 파일 이름 또한 아무렇게나 해도 상관이 없으며, 확장자를 jks로 한다.




(4) Key alias selection 이라는 항목도 없을 경우 새로 만들어서(create new key) 적당한 암호를 설정해 주면 된다.




(5) Destination APK file 에는 zip 정렬이 되어서 생성될 APK 파일을 저장할 위치를 원하는 아무 곳으로 지정하면 된다.

이 화면에서는 인증서의 유효기간과 MD5, SHA1 같은 값들을 보여준다.

Finish 버튼을 누르면 창이 사라지고, 잠시 후에 지정한 위치에 가보면 zip 정렬된 apk 파일이 생성되어 있다.






*그외 자주 실수하는 부분:

Play Store에 변경된 새로운 apk 파일을 올리려면, 무조건 AndroidManifest.xml 파일에서 Version code 숫자를 바꿔야 한다. 참고로 Version name은 변경하지 않아도 상관 없다.





반응형
블로그 이미지

Bryan_

,
반응형

테스트 기기: 엔스퍼트 아이덴티티탭 (E201V)

안드로이드 버전: 이클레어(Eclair, 2.1), 프로요(Froyo, 2.2)



연구실에서 개발한 테스트용 앱을 아이덴티티탭(안드로이드 2.1)에 설치하려고 했는데 "응용프로그램이 설치되지 않았습니다."라는 메세지와 함께 아래와 같은 설치 실패 화면만 보게 되었다.


(그림 1) 아이덴티티탭에 설치되지 않는 프로그램



예전 개발환경에서는 (이클립스 + 안드로이드 sdk 수동설치) 문제없이 설치가 되었는데, 최근에 ADT (Android Developer Tools)에서 같은 코드로 프로젝트를 만들고 설치를 시도하니 안된다. Apk 파일만 SD카드에 따로 복사해서 "알 수 없는 소스" 옵션을 체크하고 설치를 시도해도 되지 않았다.

혹시 안드로이드 버전이 너무 낮아서 그런가 해서 아이덴티티탭을 프로요(2.2)로 펌웨어 업데이트를 했는데도 문제는 해결되지 않았다.



*해결의 실마리 (?)

예전 개발환경에 있던 프로젝트와 ADT에 있는 프로젝트의 차이점이 하나 있었는데, 참조하는 라이브러리 jar 파일의 위치였다.

예전 개발환경 (이클립스 + 안드로이드 sdk 수동설치)에서는 프로젝트 밑에 아무 폴더를 만들고(예: lib), 그 안에 jar 파일을 집어넣었다. 그리고 이클립스의 Java Build Path에서 해당 jar 파일을 참조하도록 선택했다.


반면에 ADT를 비롯해서 비교적 최신 버전의 안드로이드 개발환경(이클립스 플러그인)에서는 프로젝트 밑에 "libs" 폴더를 만들고, 그 안에 jar 파일을 복사해 넣으면 자동으로 참조가 된다.


(그림 2) ADT에서 안드로이드 프로젝트의 libs 폴더에 jar 파일을 추가하는 경우


그런데 문제는, 안드로이드 2.1 프로젝트에 대해서 이렇게 libs 폴더를 통해서 jar 파일을 추가해도 프로젝트 설정(Project Properties)에서는 보이지 않는 것이다.


(그림 3) 이상하게 libs에서 추가한 jar 파일 2개가 표시되지 않는다.



그래서 ADT에서도 다시 예전 방식대로 참조해 보았다. libs 대신 그냥 일반적인 폴더(이 예제에서는 lib)를 만들고, 그 안에 jar 파일을 추가하고,


(그림 4) libs 폴더 대신 lib 폴더 사용. 자동으로 jar 파일을 참조하지 않는다.


프로젝트 설정에서 수동으로 jar 파일을 아래 그림 5~그림 6과 같이 추가했다.


(그림 5) "Add JARs..." 버튼을 눌러서 수동으로 추가


(그림 6) 해당 프로젝트의 lib 폴더 밑에 있는 jar 파일을 복수 선택



그리고 Java Build Path 창에서 "Order and Export" 탭으로 가서, 체크되어 있지 않은 2개의 참조된 라이브러리를 체크해 주었다.


(그림 7) Order and Export 탭에서 참조 라이브러리를 체크한다.


위와 같이 설정한 뒤에 프로젝트를 새로 빌드하고 나서 설치를 시도해 보니, 아이덴티티탭에 문제없이 설치가 되었다.



(주의)

이 방법은 오히려 최신 버전의 안드로이드 버전에서는(경험상으로 4.0 이상) 오히려 앱 빌드가 안되는 문제를 초래할 수도 있다. 최신 버전의 안드로이드 플랫폼에서 개발할 때는 libs 폴더에 jar 파일을 추가해서 자동으로 참조되도록 하는 것이 좋다. 또한 jar 파일이 아니고 Projects 탭에 바로 프로젝트를 참조하는 것도 문제를 일으킬 소지가 크다.




반응형
블로그 이미지

Bryan_

,
반응형

콘솔창(Windows의 cmd 또는 리눅스의 terminal)에서 아래와 같이 입력한다.

전제조건: 안드로이드 폰에 대한 USB 드라이버 및 adb가 설치되어 있어야 함.


> adb shell

$ pm list packages -f




반응형
블로그 이미지

Bryan_

,