블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

최근에 올라온 글

'안드로이드'에 해당되는 글 14건

  1. 2017.02.04 안드로이드 - keystore 파일
  2. 2017.01.28 안드로이드 NDK 컴파일 환경 구축2
  3. 2016.11.29 안드로이드 AssetManager
  4. 2016.11.29 APK파일

keystore 파일은 일종의 인증서 파일이다.(사이닝(signing)을 위해 필요함. 서류에 사인하다.)

*.apk 프로그램(앱. APP) 설치할때 검사되며, 만기 이후에는 설치가 안된다.

구글 스토어에 올려 배포하려면 꼭 필요하다.

keystore 파일을 잃어 버리면, 프로그램을 업데이트 할 수 없다.

프로그램 제작자 본인이라는 인증서이다.

자바의 keytool.exe 프로그램을 사용하여 생성할 수 있다.


C:\Program Files\Java\jdk1.8.0_121\bin\keytool.exe

키 및 인증서 관리 툴


명령:


 -certreq            인증서 요청을 생성합니다.

 -changealias        항목의 별칭을 변경합니다.

 -delete             항목을 삭제합니다.

 -exportcert         인증서를 익스포트합니다.

 -genkeypair         키 쌍을 생성합니다.

 -genseckey          보안 키를 생성합니다.

 -gencert            인증서 요청에서 인증서를 생성합니다.

 -importcert         인증서 또는 인증서 체인을 임포트합니다.

 -importpass         비밀번호를 임포트합니다.

 -importkeystore     다른 키 저장소에서 하나 또는 모든 항목을 임포트합니다.

 -keypasswd          항목의 키 비밀번호를 변경합니다.

 -list               키 저장소의 항목을 나열합니다.

 -printcert          인증서의 콘텐츠를 인쇄합니다.

 -printcertreq       인증서 요청의 콘텐츠를 인쇄합니다.

 -printcrl           CRL 파일의 콘텐츠를 인쇄합니다.

 -storepasswd        키 저장소의 저장소 비밀번호를 변경합니다.


command_name 사용법에 "keytool -command_name -help" 사용 



씹어먹는 블로그 :: keystore 만들기


사인된것인지 확인하려면, fingerprint 사용.

사인한 키스토어(keystore) 확인하기 – Dog발자



keytool -genkey -alias year100 -keyalg RSA -validity 36500 -keystore year100.keystore

키 저장소 비밀번호 입력:

새 비밀번호 다시 입력:

일치하지 않습니다. 다시 시도하십시오.

키 저장소 비밀번호 입력:

새 비밀번호 다시 입력:

이름과 성을 입력하십시오.

  [Unknown]:  year100

조직 단위 이름을 입력하십시오.

  [Unknown]:  year100

조직 이름을 입력하십시오.

  [Unknown]:  year100

구/군/시 이름을 입력하십시오?

  [Unknown]:  Seoul

시/도 이름을 입력하십시오.

  [Unknown]:  Seoul

이 조직의 두 자리 국가 코드를 입력하십시오.

  [Unknown]:  KR

CN=year100, OU=year100, O=year100, L=Seoul, ST=Seoul, C=KR이(가) 맞습니까?

  [아니오]:  y


<year100>에 대한 키 비밀번호를 입력하십시오.

        (키 저장소 비밀번호와 동일한 경우 Enter 키를 누름):


현재 폴더에 "year100.keystore"파일이 생성됨


validity : 일(Day). 20년 이상 하라고 권고. 만기후에는 사용은 되나, 설치가 안된다.

비밀번호 : 앱등록시 필요. 키입력 표시로, *등이 나오지 않는다.(안보임)


Code Dragon :: [플레이스토어, 구글스토어] 마켓에 앱 등록하기(앱 출시)




'안드로이드' 카테고리의 다른 글

안드로이드 - assets 폴더  (0) 2017.02.05
ant로 안드로이드 앱을 자동으로 빌드하자  (0) 2017.02.04
안드로이드 NDK 컴파일 환경 구축2  (0) 2017.01.28
안드로이드 AssetManager  (0) 2016.11.29
APK파일  (0) 2016.11.29
Posted by 안녕1999
, |

2번째 도전

gcc컴파일러로 C소스파일을 컴파일 할 수 는 있지만, 링크와 APK파일에 넣는것은 할 수 없어, 안드로이드 스튜디오 설치.

이클립스 개발환경도 있으나, 안드로이드 스튜디오가 대세인듯함.

그러나, 설치부터, 실행까지, 너무나 무겁다.

(이클립스는 더이상 업데이트 안되니, 안드로이드 스튜디오를 사용하란다.)


1) 컴파일러(개발환경) 다운로드

지난번에는 이클립스로 해서, 용량이 작았는데, 

안드로이드 스튜디오로 하려니, 용량이 너무 크다.(약 1.7G)

https://developer.android.com/studio/index.html?hl=ko

https://developer.android.com/studio/index.html?hl=ko#win-bundle


2) JDK 설치

안드로이드 스튜디오 실행하면, 나오는 에러 메세지

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 Java SE Development Kit 8u121
You must accept the Oracle Binary Code License Agreement for Java SE to download this software.
  Accept License Agreement       Decline License Agreement
Product / File DescriptionFile SizeDownload


Windows x86189.36 MB  jdk-8u121-windows-i586.exe
Windows x64195.51 MB  jdk-8u121-windows-x64.exe

윈도우 XP에서 설치하면 아래의 메세지가 나옴.

설치는 계속할 수 있음.

설치가 다 될때쯤, 또 에러 메세지가 나옴.

계속 진행.

JDK설치후, 안드로이드 스튜디오 실행 -> 안드로이드 스튜디오 Setup, 다운로딩 진행.

처음 실행해서 설치(다운로드)하는데, 왜이리 오래걸리는지...ㅠ ㅠ


3) NDK(라이브러리) 다운로드

https://developer.android.com/ndk/downloads/index.html

PlatformPackageSize (Bytes)SHA1 Checksum
Windows 32-bitandroid-ndk-r13b-windows-x86.zip6204615444eb1288b1d4134a9d6474eb247f0448808d52408

윈도우용 NDK?? (NDK는 OS독립적이지 않은가?)
=> NDK는 C소스파일을 리눅스의 *.so(DLL)파일로 컴파일하는 역활을 함.(안드로이드는 리눅스로 만들어졌음)
    C소스파일을 *.so형태로 컴파일해서, APK파일에 넣는다.
    안드로이드 기기(휴대폰)마다 사용하는 CPU가 다르므로, 각 CPU별로 컴파일러가 있어야 한다.
    NDK에는 각 CPU별로 컴파일러(툴체인)도 들어 있다.
    참고 : 2016.11.29 APK파일


4) NDK 샘플 소스 다운로드

https://github.com/googlesamples/android-ndk

https://github.com/googlesamples/android-ndk/archive/master.zip

'안드로이드' 카테고리의 다른 글

안드로이드 - assets 폴더  (0) 2017.02.05
ant로 안드로이드 앱을 자동으로 빌드하자  (0) 2017.02.04
안드로이드 - keystore 파일  (0) 2017.02.04
안드로이드 AssetManager  (0) 2016.11.29
APK파일  (0) 2016.11.29
Posted by 안녕1999
, |

AssetManager

프로젝트 폴더에 "assets"폴더가 있고, 이 폴더안에 1M이하의 파일을 넣으면, APK응용프로그램에서 AssetManager을 통해 파일을 사용할 수 있다고 한다.

jpg,png,gif,wav,mp3,...등의 파일은 압축하지 않고, 나머지는 압축한다고 한다.
압축하지 말아야 한다면, 확장자를 변경해서 넣도록 한다.


AssetManager am = context.getAssets();
InputStream in = am.open("mydata.txt");

'안드로이드' 카테고리의 다른 글

안드로이드 - assets 폴더  (0) 2017.02.05
ant로 안드로이드 앱을 자동으로 빌드하자  (0) 2017.02.04
안드로이드 - keystore 파일  (0) 2017.02.04
안드로이드 NDK 컴파일 환경 구축2  (0) 2017.01.28
APK파일  (0) 2016.11.29
Posted by 안녕1999
, |

APK파일

안드로이드 / 2016. 11. 29. 15:34

complie(*.java, *.xml) => *.class(여러개의 파일)

dex tool(*.class) => *.dex(1개의 파일)
//dex tool : *.class에 각각 저장된 코드를 합치는 기능. 파일사이즈가 작아짐

make_apk(*.dex,*.xml,*.resource) => *.apk(1개의 파일) 


NDK 샘플 프로젝트 폴더에서 "D:\Android\NDK\ndk-build.cmd"를 실행하면, 

(배치 파일로 만들어서 실행. 또는 바로가기=시작위치 없게 만들면 된다.)

obj, libs 폴더가 생성된다.

폴더안에는 *.so파일이 CPU종류별로 생성된다.



PATH=%PATH%;D:\Android\sdk\build-tools\android-4.4W

aapt.exe list bin\Plasma.apk > list.txt

AndroidManifest.xml

resources.arsc

classes.dex

lib/armeabi/gdbserver

lib/armeabi/libplasma.so

lib/armeabi-v7a/gdbserver

lib/armeabi-v7a/libplasma.so

lib/mips/gdbserver

lib/mips/libplasma.so

lib/x86/gdbserver

lib/x86/libplasma.so

META-INF/MANIFEST.MF

META-INF/CERT.SF

META-INF/CERT.RSA

 



APK파일은 zip압축파일이다. 7zip 같은 프로그램으로 압축을 풀 수 있다.(확장자를 zip으로 바꾸면된다)

위의 내용은 압축을 푼것과 동일하다.


거꾸로, 압축파일을 만들고, 확장자를 APK로 변환해도 실행가능할까?


APK를 만든후, keystore프로그램으로 서명을 해주어야 배포 가능해진다. 서명방법


classes.dex : 파일에 자바코드가 들어 있고, 자바소스로 변환도 가능 하다.(자바 디컴파일러)

                     달빅 가상머신에서 동작하는 바이너리 실행 파일.

                     dex2jar,  JD-GUI


AndroidManifest.xml : 앱에 대한 정보 및 실행권한 등의 정보를 가지는 xml


*.so : 윈도우에서 DLL파일과 같은 개념. 동적 라이브러리. NDK로 생성한 코드가 들어 있다.



ProGuard : 코드난독화 방법(별로 효과가 없다고 함)




ProGuard

proguard.sourceforge.net/
이 페이지 번역하기
ProGuard: java shrinker, optimizer, obfuscator, and preverifier.
Downloads · ‎Manual · ‎FAQ · ‎License

안드로이드 앱 난독화(Proguard & Dexguard)를 해보자! 1. 프로가드 편 ...

https://medium.com/.../안드로이드-앱-난독화-proguard-dexguard-를-해보자-1-프로...
2015. 11. 26. - 난독화의 중요성이 커지면서 난독화를 해주는 서비스들이 많아 지고 있는데, 그 중 안드로이드 스튜디오에 기본으로 제공하는 Proguard

Shrink Your Code and Resources | Android Studio - Android Developers

https://developer.android.com/studio/build/shrink-code.html
이 페이지 번역하기
Code shrinking is available with ProGuard, which detects and removes unused classes, fields, methods, and attributes from your packaged app, including those ...

덩치의 안드로이드 스터디 :: Proguard를 이용해 코드난독화 적용하기

biig.tistory.com/10
2013. 10. 21. - 프로그램 코드 난독화는 특정 난독화 알고리즘(Layout, Data, Control Obfuscation)을 적용하여 소스코드를 분석하기 어 렵게 변환해주는 시스템 ...

Naked Foot :: APK 디컴파일 및 ProGuard 사용하기.

lsit81.tistory.com › Android › 개발 환경
2012. 5. 28. - APK 디컴파일 및 ProGuard 사용하기. 1. APK Decompile 방법 □ 준비물 ○ 디컴파일할 Apk 파일 ○ Dex2jar 프로그램 ...

ProGuard (software) - Wikipedia

https://en.wikipedia.org/wiki/ProGuard_(software)
이 페이지 번역하기
ProGuard is an open source command-line tool that shrinks, optimizes and obfuscates Java code. It is able to optimize bytecode as well as detect and remove ...


Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함