https://www.androidauthority.com/best-android-emulators-for-pc-655308/

 

notification 에서 smallicon 이 무조건 흰색으로 표시되어서 확인해 보니

안드로이드 최근 버전부터는 무조건 흰색으로 보인다고한다.;

아래 링크로 이동하면 내가 가지고 있는 이미지들이 실제 화면상에 어떻게 표시되는지 알수 있다.

(또한 기본 아이콘들도 다운받아 활용할 수 있다.)

http://romannurik.github.io/AndroidAssetStudio/index.html

 

참고 : http://gogorchg.tistory.com/entry/Android-Notification-icon

링크로 연결됩니다.

모바일 게임 플레이어는 어떤 사람들인가요?

플레이어 유지에 처음 10분이 중요한 이유

GaaS(Games-as-a-Service) 통해 많은 수익을 창출하기 위한 5가지

google-play-services.z01

google-play-services.z02

google-play-services.zip

libproject 폴더가 있는 google-play-services 파일 압축

참고 링크

https://stackoverflow.com/questions/37310684/missing-sdk-extras-google-google-play-services-libproject-folder-after-updat

https://joshua1988.github.io/web-development/fcm-gcm-difference/

 

FCM 과 GCM 용어

  • 먼저 간단히 용어부터 정리하자.
  • GCM 이란?

    • Google Cloud Messaging 의 약자
    • 구글에서 제공하는 Server 와 Client app 간에 푸쉬 메시지를 보낼 수 있는 서비스
    • Android & iOS 를 지원
  • FCM 이란?

    • Firebase Cloud Messaing
    • GCM 의 새 버전을 의미하는데 단지 Firebase 진영에 속하는 것 뿐이다.
    • GCM 의 주요 구조를 그대로 갖고 있으며 Android & iOS & Mobile Web 등의 다양한 플랫폼을 모두 커버한다.

FCM 과 GCM 유래

  • 모바일 개발자에게는 GCM 이라는 용어가 익숙하다. 국내의 많은 모바일 앱의 Push 가 GCM 을 사용하고 있는 상황
  • Google 에서는 Google Cloud 를 이용한 Push 서비스 기반을 GCM 으로 닦아온 상황이며, Mobile Web 의 중요도가 높아짐에 따라 Mobile Application 뿐만 아니라 Mobile Web 등 모든 플랫폼에서 사용 가능한 FCM 서비스를 내놓았다.

FCM 과 GCM 차이

  • GCM 의 Client 단 구현시에 번거로웠던 등록 및 구독 로직을 FCM 라이브러리 안에 포함시켜 개발자가 별도로 개발하지 않아도 된다.
  • 또한, Firebase Analytics insight 의 기능을 활용하여 특정 타겟층에 push 전송이 가능해졌다.
  • 앞으로 구글에서는 새로운 기능들을 모두 FCM 쪽에만 추가하고, GCM 에는 추가하지 않을 것이라고 한다. 따라서, FCM SDK 사용을 강력히 권장하고 있다.
  • GCM 은 결국 FCM 의 일부이며 GCM 으로 기 구현된 서비스들도 FCM 으로 동일하게 구현이 가능하다고 한다.


 

'Andorid' 카테고리의 다른 글

Google Play 게임 만들때 읽어야할 글  (0) 2017.12.24
google-play-services(libproject)  (0) 2017.12.08
FCM 과 GCM 차이? - 펌  (0) 2017.11.25
apk 파일 keystore 적용하기  (0) 2017.08.29
BlueStacks 설치하기  (0) 2017.08.09
Apktool, apk-sign  (0) 2017.06.14

스윙 어플 제작 사이트에서 만든 apk 파일이 디버그 파일이라

아래처럼 에러가 발생되었다.

커맨드를 관리자 권한으로 실행한 후 jdk 파일이 있는 폴더로 이동한다.

C:\WINDOWS\system32>cd C:\Program Files\Java\jdk1.8.0_121\bin

위 경로에서 아래 명령어를 수행해 준다.

아래는 keystore 가 있다는 가정하에 진행되는 것으로 일부로 bin 폴더에 apk 파일과 keystore 파일을 가져다 놓고 작업하였다.

C:\Program Files\Java\jdk1.8.0_121\bin>jarsigner -verbose -keystore user.keystore kjunDev.apk kjun

Enter Passphrase for keystore: 비번입력

위와 같이 비번을 입력하게되면 쫙~~ 스크롤이 내려가면서 아래 처럼 마지막에 사인이 완료된다.

  signing: lib/armeabi-v7a/libxwalkdummy.so
jar signed.

이제 다시 apk 파일을 올려보자

아 그냥 올리면 안된다 정렬이 필요하다.

zipalign 명령어를 실행해야 하는데 이 파일은 sdk 버전별로 있다.

즉 apk 파일의 빌드 버전을 알고 있어야한다.

그런데 스윙 어플 제작 사이트에서 만든거라 비전을 알수가 없어 우선 19.1.0 버전으로 실행해 보았다.

C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0>zipalign -f -v 4 d:/kjunDev.apk d:/kjunDev-release.apk
Verifying alignment of d:/kjunDev-release.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
   22747 META-INF/KJUN.SF (OK - compressed)
   38060 META-INF/KJUN.RSA (OK - compressed)
   38766 META-INF/CERT.SF (OK - compressed)
   49837 META-INF/CERT.RSA (OK - compressed)
   50958 AndroidManifest.xml (OK - compressed)
   54453 assets/www/build/main.min.js (OK - compressed)
  296685 assets/www/build/my-app.min.css (OK - compressed)
  299581 assets/www/cordova-js-src/android/nativeapiprovider.js (OK - compressed)
  300359 assets/www/cordova-js-src/android/promptbasednativeapi.js (OK - compressed)
  .....
  28361446 lib/armeabi-v7a/libxwalkdummy.so (OK - compressed)
Verification succesful

올려보자..

아.. 16-17 버전의 sdk 로 정렬을 해야하나보다. ㅜㅠ

완료되면 다시 작성을....ㅡㅜ

 

아래는 참고 링크

http://jewonagency.com/%ec%b4%88-%ea%b0%84%eb%8b%a8%ed%95%98%ea%b2%8c-%ec%95%88%eb%93%9c%eb%a1%9c%ec%9d%b4%eb%93%9c-apk-%ec%82%ac%ec%9d%b8%ed%95%98%ea%b8%b0-signing-cli-%ec%bb%a4%eb%a7%a8%eb%93%9c%eb%9d%bc%ec%9d%b8/

http://www.androidpub.com/4742

 

이클립스

http://www.androidpub.com/35445

 

안드로이드스튜디오

https://developer.android.com/studio/publish/app-signing.html#debug-mode

 

>> 아래는 전체 과정 <<

Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>jarsigner
'jarsigner'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

C:\WINDOWS\system32>cd C:\Program Files\Java\jdk1.8.0_121\bin

C:\Program Files\Java\jdk1.8.0_121\bin>jarsigner
Usage: jarsigner [options] jar-file alias
       jarsigner -verify [options] jar-file [alias...]

[-keystore <url>]           keystore location

[-storepass <password>]     password for keystore integrity

[-storetype <type>]         keystore type

[-keypass <password>]       password for private key (if different)

[-certchain <file>]         name of alternative certchain file

[-sigfile <file>]           name of .SF/.DSA file

[-signedjar <file>]         name of signed JAR file

[-digestalg <algorithm>]    name of digest algorithm

[-sigalg <algorithm>]       name of signature algorithm

[-verify]                   verify a signed JAR file

[-verbose[:suboptions]]     verbose output when signing/verifying.
                            suboptions can be all, grouped or summary

[-certs]                    display certificates when verbose and verifying

[-tsa <url>]                location of the Timestamping Authority

[-tsacert <alias>]          public key certificate for Timestamping Authority

[-tsapolicyid <oid>]        TSAPolicyID for Timestamping Authority

[-tsadigestalg <algorithm>] algorithm of digest data in timestamping request

[-altsigner <class>]        class name of an alternative signing mechanism

[-altsignerpath <pathlist>] location of an alternative signing mechanism

[-internalsf]               include the .SF file inside the signature block

[-sectionsonly]             don't compute hash of entire manifest

[-protected]                keystore has protected authentication path

[-providerName <name>]      provider name

[-providerClass <class>     name of cryptographic service provider's
  [-providerArg <arg>]] ... master class file and constructor argument

[-strict]                   treat warnings as errors


C:\Program Files\Java\jdk1.8.0_121\bin>jarsigner -verbose -keystore user.keystore kjunDev.apk kjun
Enter Passphrase for keystore:
 updating: META-INF/MANIFEST.MF
   adding: META-INF/KJUN.SF
   adding: META-INF/KJUN.RSA
  signing: AndroidManifest.xml
  signing: assets/www/build/main.min.js
  signing: assets/www/build/my-app.min.css
  signing: assets/www/cordova-js-src/android/nativeapiprovider.js
  signing: assets/www/cordova-js-src/android/promptbasednativeapi.js
  signing: assets/www/cordova-js-src/exec.js
  signing: assets/www/cordova-js-src/platform.js
  signing: assets/www/cordova-js-src/plugin/android/app.js
  signing: assets/www/cordova.js
  signing: assets/www/cordova_plugins.js
  signing: assets/www/css/fonts/icomoon.eot
  signing: assets/www/css/fonts/icomoon.svg
  signing: assets/www/css/fonts/icomoon.ttf
  signing: assets/www/css/fonts/icomoon.woff
  signing: assets/www/css/framework7.material.colors.css
  signing: assets/www/css/framework7.material.colors.min.css
  signing: assets/www/css/framework7.material.css
  signing: assets/www/css/framework7.material.min.css
  signing: assets/www/css/framework7.material.rtl.css
  signing: assets/www/css/framework7.material.rtl.min.css
  signing: assets/www/css/icon_style.css
  signing: assets/www/css/image-map-pro.min.css
  signing: assets/www/css/my-app.less
  signing: assets/www/data/string.json
  signing: assets/www/img/ad_app_info.jpg
  signing: assets/www/img/icon/icon.png
  signing: assets/www/img/icon_custom1.png
  signing: assets/www/img/icon_custom2.png
  signing: assets/www/img/profile_image.png
  signing: assets/www/img/stamp_inactive.png
  signing: assets/www/index.html
  signing: assets/www/index_webview.html
  signing: assets/www/js/less.min.js
  signing: assets/www/js/native/push.js
  signing: assets/www/main.html
  signing: assets/www/manifest.json
  signing: assets/www/plugins/com.hustay.swing.plugin/www/swing_cordova.js
  signing: assets/www/plugins/com.phonegap.plugins.fileopener/www/fileopener.js
  signing: assets/www/plugins/com.sarriaroman.PhotoViewer/www/PhotoViewer.js
  signing: assets/www/plugins/com.synconset.imagepicker/www/imagepicker.js
  signing: assets/www/plugins/com.xmartlabs.cordova.market/www/market.js
  signing: assets/www/plugins/cordova-plugin-android-permissions/www/permissions.js
  signing: assets/www/plugins/cordova-plugin-app-preferences/www/apppreferences.js
  signing: assets/www/plugins/cordova-plugin-appversion/www/app-version.js
  signing: assets/www/plugins/cordova-plugin-badge/www/badge.js
  signing: assets/www/plugins/cordova-plugin-camera/www/Camera.js
  signing: assets/www/plugins/cordova-plugin-camera/www/CameraConstants.js
  signing: assets/www/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js
  signing: assets/www/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js
  signing: assets/www/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js
  signing: assets/www/plugins/cordova-plugin-device/www/device.js
  signing: assets/www/plugins/cordova-plugin-dialogs/www/android/notification.js
  signing: assets/www/plugins/cordova-plugin-dialogs/www/notification.js
  signing: assets/www/plugins/cordova-plugin-file-opener2/www/plugins.FileOpener2.js
  signing: assets/www/plugins/cordova-plugin-file-transfer/www/FileTransfer.js
  signing: assets/www/plugins/cordova-plugin-file-transfer/www/FileTransferError.js
  signing: assets/www/plugins/cordova-plugin-file/www/DirectoryEntry.js
  signing: assets/www/plugins/cordova-plugin-file/www/DirectoryReader.js
  signing: assets/www/plugins/cordova-plugin-file/www/Entry.js
  signing: assets/www/plugins/cordova-plugin-file/www/File.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileEntry.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileError.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileReader.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileSystem.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileUploadOptions.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileUploadResult.js
  signing: assets/www/plugins/cordova-plugin-file/www/FileWriter.js
  signing: assets/www/plugins/cordova-plugin-file/www/Flags.js
  signing: assets/www/plugins/cordova-plugin-file/www/LocalFileSystem.js
  signing: assets/www/plugins/cordova-plugin-file/www/Metadata.js
  signing: assets/www/plugins/cordova-plugin-file/www/ProgressEvent.js
  signing: assets/www/plugins/cordova-plugin-file/www/android/FileSystem.js
  signing: assets/www/plugins/cordova-plugin-file/www/fileSystemPaths.js
  signing: assets/www/plugins/cordova-plugin-file/www/fileSystems-roots.js
  signing: assets/www/plugins/cordova-plugin-file/www/fileSystems.js
  signing: assets/www/plugins/cordova-plugin-file/www/requestFileSystem.js
  signing: assets/www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js
  signing: assets/www/plugins/cordova-plugin-fileopener/www/FileOpener.js
  signing: assets/www/plugins/cordova-plugin-filepath/www/FilePath.js
  signing: assets/www/plugins/cordova-plugin-geolocation/www/PositionError.js
  signing: assets/www/plugins/cordova-plugin-geolocation/www/android/geolocation.js
  signing: assets/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js
  signing: assets/www/plugins/cordova-plugin-network-information/www/Connection.js
  signing: assets/www/plugins/cordova-plugin-network-information/www/network.js
  signing: assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js
  signing: assets/www/plugins/cordova-plugin-vibration/www/vibration.js
  signing: assets/www/plugins/cordova-plugin-whitelist/whitelist.js
  signing: assets/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js
  signing: assets/www/plugins/cordova-plugin-zip/zip.js
  signing: assets/www/plugins/de.fastr.phonegap.plugins.md5chksum/www/md5chksum.js
  signing: assets/www/plugins/es.keensoft.fullscreenimage/www/fullscreenimage.js
  signing: assets/www/plugins/ionic-plugin-keyboard/www/android/keyboard.js
  signing: assets/www/plugins/onesignal-cordova-plugin/www/OneSignal.js
  signing: assets/www/plugins/phonegap-plugin-contentsync/www/index.js
  signing: assets/www/task/AppPreferences.js
  signing: assets/xwalk-command-line
  signing: res/anim/image_pop_in.xml
  signing: res/color/common_google_signin_btn_text_dark.xml
  signing: res/color/common_google_signin_btn_text_light.xml
  signing: res/drawable-hdpi-v4/bubble.9.png
  signing: res/drawable-hdpi-v4/bubble_arrow_up.png
  signing: res/drawable-hdpi-v4/color_picker_advanced_select_handle.png
  signing: res/drawable-hdpi-v4/common_full_open_on_phone.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_focused.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_normal.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_light_disabled.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_light_focused.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_light_normal.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_icon_light_pressed.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_dark_disabled.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_dark_focused.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_dark_normal.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_dark_pressed.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_light_disabled.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_light_focused.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_light_normal.9.png
  signing: res/drawable-hdpi-v4/common_google_signin_btn_text_light_pressed.9.png
  signing: res/drawable-hdpi-v4/common_ic_googleplayservices.png
  signing: res/drawable-hdpi-v4/dropdown_popup_background_down.9.png
  signing: res/drawable-hdpi-v4/dropdown_popup_background_up.9.png
  signing: res/drawable-hdpi-v4/ic_action_next_item.png
  signing: res/drawable-hdpi-v4/ic_action_previous_item.png
  signing: res/drawable-hdpi-v4/ic_action_remove.png
  signing: res/drawable-hdpi-v4/ic_menu_share_holo_light.png
  signing: res/drawable-hdpi-v4/ic_os_notification_fallback_white_24dp.png
  signing: res/drawable-hdpi-v4/ic_search.png
  signing: res/drawable-hdpi-v4/ic_warning.png
  signing: res/drawable-hdpi-v4/icon.png
  signing: res/drawable-hdpi-v4/image_bg.9.png
  signing: res/drawable-hdpi-v4/loading_icon.png
  signing: res/drawable-hdpi-v4/ondemand_overlay.9.png
  signing: res/drawable-hdpi-v4/verify_checkmark.png
  signing: res/drawable-land-hdpi-v4/screen.png
  signing: res/drawable-land-ldpi-v4/screen.png
  signing: res/drawable-land-mdpi-v4/screen.png
  signing: res/drawable-land-xhdpi-v4/screen.png
  signing: res/drawable-land-xxhdpi-v4/screen.png
  signing: res/drawable-land-xxxhdpi-v4/screen.png
  signing: res/drawable-ldpi-v4/common_ic_googleplayservices.png
  signing: res/drawable-ldpi-v4/icon.png
  signing: res/drawable-mdpi-v4/common_full_open_on_phone.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_focused.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_normal.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_light_disabled.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_light_focused.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_light_normal.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_icon_light_pressed.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_dark_disabled.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_dark_focused.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_dark_normal.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_dark_pressed.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_light_disabled.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_light_focused.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_light_normal.9.png
  signing: res/drawable-mdpi-v4/common_google_signin_btn_text_light_pressed.9.png
  signing: res/drawable-mdpi-v4/common_ic_googleplayservices.png
  signing: res/drawable-mdpi-v4/ic_action_discard_dark.png
  signing: res/drawable-mdpi-v4/ic_action_discard_light.png
  signing: res/drawable-mdpi-v4/ic_action_done_dark.png
  signing: res/drawable-mdpi-v4/ic_action_done_light.png
  signing: res/drawable-mdpi-v4/ic_action_next_item.png
  signing: res/drawable-mdpi-v4/ic_action_previous_item.png
  signing: res/drawable-mdpi-v4/ic_action_remove.png
  signing: res/drawable-mdpi-v4/ic_launcher.png
  signing: res/drawable-mdpi-v4/ic_os_notification_fallback_white_24dp.png
  signing: res/drawable-mdpi-v4/icon.png
  signing: res/drawable-port-hdpi-v4/screen.png
  signing: res/drawable-port-ldpi-v4/screen.png
  signing: res/drawable-port-mdpi-v4/screen.png
  signing: res/drawable-port-xhdpi-v4/screen.png
  signing: res/drawable-port-xxhdpi-v4/screen.png
  signing: res/drawable-port-xxxhdpi-v4/screen.png
  signing: res/drawable-tvdpi-v4/common_full_open_on_phone.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_focused.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_normal.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_disabled.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_focused.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_normal.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_pressed.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_disabled.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_focused.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_normal.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_pressed.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_light_disabled.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_light_focused.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_light_normal.9.png
  signing: res/drawable-tvdpi-v4/common_google_signin_btn_text_light_pressed.9.png
  signing: res/drawable-v21/button_borderless_compat.xml
  signing: res/drawable-v21/button_compat.xml
  signing: res/drawable-xhdpi-v4/bubble.9.png
  signing: res/drawable-xhdpi-v4/bubble_arrow_up.png
  signing: res/drawable-xhdpi-v4/color_picker_advanced_select_handle.png
  signing: res/drawable-xhdpi-v4/common_full_open_on_phone.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_focused.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_normal.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_disabled.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_focused.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_normal.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_pressed.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_disabled.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_focused.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_normal.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_pressed.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_light_disabled.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_light_focused.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_light_normal.9.png
  signing: res/drawable-xhdpi-v4/common_google_signin_btn_text_light_pressed.9.png
  signing: res/drawable-xhdpi-v4/common_ic_googleplayservices.png
  signing: res/drawable-xhdpi-v4/dropdown_popup_background_down.9.png
  signing: res/drawable-xhdpi-v4/dropdown_popup_background_up.9.png
  signing: res/drawable-xhdpi-v4/ic_action_discard_dark.png
  signing: res/drawable-xhdpi-v4/ic_action_discard_light.png
  signing: res/drawable-xhdpi-v4/ic_action_done_dark.png
  signing: res/drawable-xhdpi-v4/ic_action_done_light.png
  signing: res/drawable-xhdpi-v4/ic_action_next_item.png
  signing: res/drawable-xhdpi-v4/ic_action_previous_item.png
  signing: res/drawable-xhdpi-v4/ic_action_remove.png
  signing: res/drawable-xhdpi-v4/ic_launcher.png
  signing: res/drawable-xhdpi-v4/ic_menu_share_holo_light.png
  signing: res/drawable-xhdpi-v4/ic_os_notification_fallback_white_24dp.png
  signing: res/drawable-xhdpi-v4/ic_search.png
  signing: res/drawable-xhdpi-v4/ic_warning.png
  signing: res/drawable-xhdpi-v4/icon.png
  signing: res/drawable-xhdpi-v4/ondemand_overlay.9.png
  signing: res/drawable-xhdpi-v4/verify_checkmark.png
  signing: res/drawable-xxhdpi-v4/common_full_open_on_phone.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_focused.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_normal.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_disabled.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_focused.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_normal.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_pressed.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_disabled.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_focused.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_normal.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_pressed.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_disabled.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_focused.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_normal.9.png
  signing: res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_pressed.9.png
  signing: res/drawable-xxhdpi-v4/common_ic_googleplayservices.png
  signing: res/drawable-xxhdpi-v4/ic_action_next_item.png
  signing: res/drawable-xxhdpi-v4/ic_action_previous_item.png
  signing: res/drawable-xxhdpi-v4/ic_action_remove.png
  signing: res/drawable-xxhdpi-v4/ic_menu_share_holo_light.png
  signing: res/drawable-xxhdpi-v4/ic_os_notification_fallback_white_24dp.png
  signing: res/drawable-xxhdpi-v4/ic_search.png
  signing: res/drawable-xxhdpi-v4/ic_warning.png
  signing: res/drawable-xxhdpi-v4/icon.png
  signing: res/drawable-xxhdpi-v4/verify_checkmark.png
  signing: res/drawable-xxxhdpi-v4/ic_menu_share_holo_light.png
  signing: res/drawable-xxxhdpi-v4/ic_os_notification_fallback_white_24dp.png
  signing: res/drawable-xxxhdpi-v4/ic_search.png
  signing: res/drawable-xxxhdpi-v4/ic_warning.png
  signing: res/drawable-xxxhdpi-v4/icon.png
  signing: res/drawable-xxxhdpi-v4/verify_checkmark.png
  signing: res/drawable/autofill_chip_inset.xml
  signing: res/drawable/bubble.9.png
  signing: res/drawable/bubble_arrow_up.png
  signing: res/drawable/button_compat_shape.xml
  signing: res/drawable/color_button_background.xml
  signing: res/drawable/color_picker_advanced_select_handle.png
  signing: res/drawable/color_picker_border.xml
  signing: res/drawable/common_google_signin_btn_icon_dark.xml
  signing: res/drawable/common_google_signin_btn_icon_light.xml
  signing: res/drawable/common_google_signin_btn_text_dark.xml
  signing: res/drawable/common_google_signin_btn_text_light.xml
  signing: res/drawable/dropdown_label_color.xml
  signing: res/drawable/dropdown_popup_background.xml
  signing: res/drawable/dropdown_popup_background_down.9.png
  signing: res/drawable/dropdown_popup_background_up.9.png
  signing: res/drawable/grid_background.xml
  signing: res/drawable/ic_menu_share_holo_light.png
  signing: res/drawable/ic_search.png
  signing: res/drawable/ic_warning.png
  signing: res/drawable/ondemand_overlay.9.png
  signing: res/drawable/verify_checkmark.png
  signing: res/layout-land-v21/date_time_picker_dialog.xml
  signing: res/layout-land/date_time_picker_dialog.xml
  signing: res/layout-v17/autofill_keyboard_accessory_item.xml
  signing: res/layout-v17/color_picker_advanced_component.xml
  signing: res/layout-v17/color_picker_dialog_content.xml
  signing: res/layout-v17/color_picker_dialog_title.xml
  signing: res/layout-v17/date_time_suggestion.xml
  signing: res/layout-v17/dropdown_item.xml
  signing: res/layout-v17/multi_field_time_picker_dialog.xml
  signing: res/layout-v17/onesignal_bgimage_notif_layout.xml
  signing: res/layout-v17/two_field_date_picker.xml
  signing: res/layout-v17/validation_message_bubble.xml
  signing: res/layout-v21/date_time_picker_dialog.xml
  signing: res/layout/actionbar_custom_view_done_discard.xml
  signing: res/layout/actionbar_discard_button.xml
  signing: res/layout/actionbar_done_button.xml
  signing: res/layout/activity_photo.xml
  signing: res/layout/autofill_keyboard_accessory_icon.xml
  signing: res/layout/autofill_keyboard_accessory_item.xml
  signing: res/layout/color_picker_advanced_component.xml
  signing: res/layout/color_picker_dialog_content.xml
  signing: res/layout/color_picker_dialog_title.xml
  signing: res/layout/date_time_picker_dialog.xml
  signing: res/layout/date_time_suggestion.xml
  signing: res/layout/dropdown_item.xml
  signing: res/layout/multi_field_time_picker_dialog.xml
  signing: res/layout/multiselectorgrid.xml
  signing: res/layout/onesignal_bgimage_notif_layout.xml
  signing: res/layout/swingwebview_control_layout.xml
  signing: res/layout/two_field_date_picker.xml
  signing: res/layout/validation_message_bubble.xml
  signing: res/menu/select_action_menu.xml
  signing: res/raw/consumer_onesignal_keep.xml
  signing: res/raw/empty.wav
  signing: res/raw/icudtl.dat
  signing: res/raw/launch_screen_api.js
  signing: res/raw/wifidirect_api.js
  signing: res/raw/xwalk.pak
  signing: res/raw/xwalk_100_percent.pak
  signing: res/xml/apppreferences.xml
  signing: res/xml/config.xml
  signing: resources.arsc
  signing: classes.dex
  signing: build-data.properties
  signing: jsr305_annotations/Jsr305_annotations.gwt.xml
  signing: lib/armeabi-v7a/libxwalkcore.so
  signing: lib/armeabi-v7a/libxwalkdummy.so
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2067-08-16) or after any future revocation date.

C:\Program Files\Java\jdk1.8.0_121\bin>zipalign -f -v 4 kjunDev.apk kjunDev-release.apk
'zipalign'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

C:\Program Files\Java\jdk1.8.0_121\bin>cd C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0

C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0>zipalign -f -v 4 d:/kjunDev.apk d:/kjunDev-release.apk
Verifying alignment of d:/kjunDev-release.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
   22747 META-INF/KJUN.SF (OK - compressed)
   38060 META-INF/KJUN.RSA (OK - compressed)
   38766 META-INF/CERT.SF (OK - compressed)
   49837 META-INF/CERT.RSA (OK - compressed)
   50958 AndroidManifest.xml (OK - compressed)
   54453 assets/www/build/main.min.js (OK - compressed)
  296685 assets/www/build/my-app.min.css (OK - compressed)
  299581 assets/www/cordova-js-src/android/nativeapiprovider.js (OK - compressed)
  300359 assets/www/cordova-js-src/android/promptbasednativeapi.js (OK - compressed)
  301184 assets/www/cordova-js-src/exec.js (OK - compressed)
  304707 assets/www/cordova-js-src/platform.js (OK - compressed)
  306139 assets/www/cordova-js-src/plugin/android/app.js (OK - compressed)
  307670 assets/www/cordova.js (OK - compressed)
  324349 assets/www/cordova_plugins.js (OK - compressed)
  325975 assets/www/css/fonts/icomoon.eot (OK - compressed)
  459058 assets/www/css/fonts/icomoon.svg (OK - compressed)
  686547 assets/www/css/fonts/icomoon.ttf (OK - compressed)
  819554 assets/www/css/fonts/icomoon.woff (OK - compressed)
  952595 assets/www/css/framework7.material.colors.css (OK - compressed)
  976540 assets/www/css/framework7.material.colors.min.css (OK - compressed)
 1000297 assets/www/css/framework7.material.css (OK - compressed)
 1023495 assets/www/css/framework7.material.min.css (OK - compressed)
 1044398 assets/www/css/framework7.material.rtl.css (OK - compressed)
 1047413 assets/www/css/framework7.material.rtl.min.css (OK - compressed)
 1050239 assets/www/css/icon_style.css (OK - compressed)
 1058917 assets/www/css/image-map-pro.min.css (OK - compressed)
 1059815 assets/www/css/my-app.less (OK - compressed)
 1062528 assets/www/data/string.json (OK - compressed)
 1069780 assets/www/img/ad_app_info.jpg (OK)
 1399844 assets/www/img/icon/icon.png (OK)
 1978736 assets/www/img/icon_custom1.png (OK)
 1993764 assets/www/img/icon_custom2.png (OK)
 2039688 assets/www/img/profile_image.png (OK)
 2047040 assets/www/img/stamp_inactive.png (OK)
 2050279 assets/www/index.html (OK - compressed)
 2050833 assets/www/index_webview.html (OK - compressed)
 2052088 assets/www/js/less.min.js (OK - compressed)
 2094866 assets/www/js/native/push.js (OK - compressed)
 2096473 assets/www/main.html (OK - compressed)
 2148996 assets/www/manifest.json (OK)
 2149129 assets/www/plugins/com.hustay.swing.plugin/www/swing_cordova.js (OK - compressed)
 2150104 assets/www/plugins/com.phonegap.plugins.fileopener/www/fileopener.js (OK - compressed)
 2150486 assets/www/plugins/com.sarriaroman.PhotoViewer/www/PhotoViewer.js (OK - compressed)
 2150776 assets/www/plugins/com.synconset.imagepicker/www/imagepicker.js (OK - compressed)
 2151484 assets/www/plugins/com.xmartlabs.cordova.market/www/market.js (OK - compressed)
 2151895 assets/www/plugins/cordova-plugin-android-permissions/www/permissions.js (OK - compressed)
 2154238 assets/www/plugins/cordova-plugin-app-preferences/www/apppreferences.js (OK - compressed)
 2157077 assets/www/plugins/cordova-plugin-appversion/www/app-version.js (OK - compressed)
 2158395 assets/www/plugins/cordova-plugin-badge/www/badge.js (OK - compressed)
 2160138 assets/www/plugins/cordova-plugin-camera/www/Camera.js (OK - compressed)
 2161475 assets/www/plugins/cordova-plugin-camera/www/CameraConstants.js (OK - compressed)
 2162620 assets/www/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js (OK - compressed)
 2163386 assets/www/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js (OK - compressed)
 2164251 assets/www/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js (OK - compressed)
 2164867 assets/www/plugins/cordova-plugin-device/www/device.js (OK - compressed)
 2166256 assets/www/plugins/cordova-plugin-dialogs/www/android/notification.js (OK - compressed)
 2167316 assets/www/plugins/cordova-plugin-dialogs/www/notification.js (OK - compressed)
 2169129 assets/www/plugins/cordova-plugin-file-opener2/www/plugins.FileOpener2.js (OK - compressed)
 2170219 assets/www/plugins/cordova-plugin-file-transfer/www/FileTransfer.js (OK - compressed)
 2172965 assets/www/plugins/cordova-plugin-file-transfer/www/FileTransferError.js (OK - compressed)
 2173800 assets/www/plugins/cordova-plugin-file/www/DirectoryEntry.js (OK - compressed)
 2175336 assets/www/plugins/cordova-plugin-file/www/DirectoryReader.js (OK - compressed)
 2176548 assets/www/plugins/cordova-plugin-file/www/Entry.js (OK - compressed)
 2179085 assets/www/plugins/cordova-plugin-file/www/File.js (OK - compressed)
 2180347 assets/www/plugins/cordova-plugin-file/www/FileEntry.js (OK - compressed)
 2181685 assets/www/plugins/cordova-plugin-file/www/FileError.js (OK - compressed)
 2182556 assets/www/plugins/cordova-plugin-file/www/FileReader.js (OK - compressed)
 2184865 assets/www/plugins/cordova-plugin-file/www/FileSystem.js (OK - compressed)
 2185765 assets/www/plugins/cordova-plugin-file/www/FileUploadOptions.js (OK - compressed)
 2186735 assets/www/plugins/cordova-plugin-file/www/FileUploadResult.js (OK - compressed)
 2187444 assets/www/plugins/cordova-plugin-file/www/FileWriter.js (OK - compressed)
 2190017 assets/www/plugins/cordova-plugin-file/www/Flags.js (OK - compressed)
 2190829 assets/www/plugins/cordova-plugin-file/www/LocalFileSystem.js (OK - compressed)
 2191483 assets/www/plugins/cordova-plugin-file/www/Metadata.js (OK - compressed)
 2192321 assets/www/plugins/cordova-plugin-file/www/ProgressEvent.js (OK - compressed)
 2193537 assets/www/plugins/cordova-plugin-file/www/android/FileSystem.js (OK - compressed)
 2194356 assets/www/plugins/cordova-plugin-file/www/fileSystemPaths.js (OK - compressed)
 2195558 assets/www/plugins/cordova-plugin-file/www/fileSystems-roots.js (OK - compressed)
 2196481 assets/www/plugins/cordova-plugin-file/www/fileSystems.js (OK - compressed)
 2197191 assets/www/plugins/cordova-plugin-file/www/requestFileSystem.js (OK - compressed)
 2198524 assets/www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js (OK - compressed)
 2200181 assets/www/plugins/cordova-plugin-fileopener/www/FileOpener.js (OK - compressed)
 2200466 assets/www/plugins/cordova-plugin-filepath/www/FilePath.js (OK - compressed)
 2200862 assets/www/plugins/cordova-plugin-geolocation/www/PositionError.js (OK - compressed)
 2201677 assets/www/plugins/cordova-plugin-geolocation/www/android/geolocation.js (OK - compressed)
 2202771 assets/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js (OK - compressed)
 2204309 assets/www/plugins/cordova-plugin-network-information/www/Connection.js (OK - compressed)
 2205058 assets/www/plugins/cordova-plugin-network-information/www/network.js (OK - compressed)
 2206543 assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js (OK - compressed)
 2207263 assets/www/plugins/cordova-plugin-vibration/www/vibration.js (OK - compressed)
 2208838 assets/www/plugins/cordova-plugin-whitelist/whitelist.js (OK - compressed)
 2209622 assets/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js (OK - compressed)
 2211023 assets/www/plugins/cordova-plugin-zip/zip.js (OK - compressed)
 2211467 assets/www/plugins/de.fastr.phonegap.plugins.md5chksum/www/md5chksum.js (OK - compressed)
 2211781 assets/www/plugins/es.keensoft.fullscreenimage/www/fullscreenimage.js (OK - compressed)
 2212262 assets/www/plugins/ionic-plugin-keyboard/www/android/keyboard.js (OK - compressed)
 2212888 assets/www/plugins/onesignal-cordova-plugin/www/OneSignal.js (OK - compressed)
 2215419 assets/www/plugins/phonegap-plugin-contentsync/www/index.js (OK - compressed)
 2217819 assets/www/task/AppPreferences.js (OK - compressed)
 2218680 assets/xwalk-command-line (OK)
 2218774 res/anim/image_pop_in.xml (OK - compressed)
 2219170 res/color/common_google_signin_btn_text_dark.xml (OK - compressed)
 2219544 res/color/common_google_signin_btn_text_light.xml (OK - compressed)
 2219904 res/drawable-hdpi-v4/bubble.9.png (OK)
 2220900 res/drawable-hdpi-v4/bubble_arrow_up.png (OK)
 2221376 res/drawable-hdpi-v4/color_picker_advanced_select_handle.png (OK)
 2222980 res/drawable-hdpi-v4/common_full_open_on_phone.png (OK)
 2223564 res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png (OK)
 2224900 res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_focused.9.png (OK)
 2226948 res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_normal.9.png (OK)
 2228908 res/drawable-hdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png (OK)
 2230844 res/drawable-hdpi-v4/common_google_signin_btn_icon_light_disabled.9.png (OK)
 2231928 res/drawable-hdpi-v4/common_google_signin_btn_icon_light_focused.9.png (OK)
 2234080 res/drawable-hdpi-v4/common_google_signin_btn_icon_light_normal.9.png (OK)
 2236016 res/drawable-hdpi-v4/common_google_signin_btn_icon_light_pressed.9.png (OK)
 2237884 res/drawable-hdpi-v4/common_google_signin_btn_text_dark_disabled.9.png (OK)
 2239284 res/drawable-hdpi-v4/common_google_signin_btn_text_dark_focused.9.png (OK)
 2241424 res/drawable-hdpi-v4/common_google_signin_btn_text_dark_normal.9.png (OK)
 2243500 res/drawable-hdpi-v4/common_google_signin_btn_text_dark_pressed.9.png (OK)
 2245556 res/drawable-hdpi-v4/common_google_signin_btn_text_light_disabled.9.png (OK)
 2246708 res/drawable-hdpi-v4/common_google_signin_btn_text_light_focused.9.png (OK)
 2248952 res/drawable-hdpi-v4/common_google_signin_btn_text_light_normal.9.png (OK)
 2250968 res/drawable-hdpi-v4/common_google_signin_btn_text_light_pressed.9.png (OK)
 2252932 res/drawable-hdpi-v4/common_ic_googleplayservices.png (OK)
 2254896 res/drawable-hdpi-v4/dropdown_popup_background_down.9.png (OK)
 2255412 res/drawable-hdpi-v4/dropdown_popup_background_up.9.png (OK)
 2255908 res/drawable-hdpi-v4/ic_action_next_item.png (OK)
 2256264 res/drawable-hdpi-v4/ic_action_previous_item.png (OK)
 2256612 res/drawable-hdpi-v4/ic_action_remove.png (OK)
 2256924 res/drawable-hdpi-v4/ic_menu_share_holo_light.png (OK)
 2257564 res/drawable-hdpi-v4/ic_os_notification_fallback_white_24dp.png (OK)
 2258000 res/drawable-hdpi-v4/ic_search.png (OK)
 2258644 res/drawable-hdpi-v4/ic_warning.png (OK)
 2258884 res/drawable-hdpi-v4/icon.png (OK)
 2266672 res/drawable-hdpi-v4/image_bg.9.png (OK)
 2268168 res/drawable-hdpi-v4/loading_icon.png (OK)
 2270740 res/drawable-hdpi-v4/ondemand_overlay.9.png (OK)
 2277084 res/drawable-hdpi-v4/verify_checkmark.png (OK)
 2278140 res/drawable-land-hdpi-v4/screen.png (OK)
 2320000 res/drawable-land-ldpi-v4/screen.png (OK)
 2332084 res/drawable-land-mdpi-v4/screen.png (OK)
 2355112 res/drawable-land-xhdpi-v4/screen.png (OK)
 2430552 res/drawable-land-xxhdpi-v4/screen.png (OK)
 2517712 res/drawable-land-xxxhdpi-v4/screen.png (OK)
 2622972 res/drawable-ldpi-v4/common_ic_googleplayservices.png (OK)
 2624268 res/drawable-ldpi-v4/icon.png (OK)
 2626912 res/drawable-mdpi-v4/common_full_open_on_phone.png (OK)
 2627724 res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png (OK)
 2628708 res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_focused.9.png (OK)
 2630104 res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_normal.9.png (OK)
 2631448 res/drawable-mdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png (OK)
 2632772 res/drawable-mdpi-v4/common_google_signin_btn_icon_light_disabled.9.png (OK)
 2633588 res/drawable-mdpi-v4/common_google_signin_btn_icon_light_focused.9.png (OK)
 2635064 res/drawable-mdpi-v4/common_google_signin_btn_icon_light_normal.9.png (OK)
 2636360 res/drawable-mdpi-v4/common_google_signin_btn_icon_light_pressed.9.png (OK)
 2637636 res/drawable-mdpi-v4/common_google_signin_btn_text_dark_disabled.9.png (OK)
 2638624 res/drawable-mdpi-v4/common_google_signin_btn_text_dark_focused.9.png (OK)
 2640052 res/drawable-mdpi-v4/common_google_signin_btn_text_dark_normal.9.png (OK)
 2641424 res/drawable-mdpi-v4/common_google_signin_btn_text_dark_pressed.9.png (OK)
 2642780 res/drawable-mdpi-v4/common_google_signin_btn_text_light_disabled.9.png (OK)
 2643612 res/drawable-mdpi-v4/common_google_signin_btn_text_light_focused.9.png (OK)
 2645108 res/drawable-mdpi-v4/common_google_signin_btn_text_light_normal.9.png (OK)
 2646400 res/drawable-mdpi-v4/common_google_signin_btn_text_light_pressed.9.png (OK)
 2647672 res/drawable-mdpi-v4/common_ic_googleplayservices.png (OK)
 2649304 res/drawable-mdpi-v4/ic_action_discard_dark.png (OK)
 2649628 res/drawable-mdpi-v4/ic_action_discard_light.png (OK)
 2649948 res/drawable-mdpi-v4/ic_action_done_dark.png (OK)
 2650420 res/drawable-mdpi-v4/ic_action_done_light.png (OK)
 2650892 res/drawable-mdpi-v4/ic_action_next_item.png (OK)
 2651196 res/drawable-mdpi-v4/ic_action_previous_item.png (OK)
 2651496 res/drawable-mdpi-v4/ic_action_remove.png (OK)
 2651748 res/drawable-mdpi-v4/ic_launcher.png (OK)
 2655272 res/drawable-mdpi-v4/ic_os_notification_fallback_white_24dp.png (OK)
 2655604 res/drawable-mdpi-v4/icon.png (OK)
 2659732 res/drawable-port-hdpi-v4/screen.png (OK)
 2701052 res/drawable-port-ldpi-v4/screen.png (OK)
 2713188 res/drawable-port-mdpi-v4/screen.png (OK)
 2736020 res/drawable-port-xhdpi-v4/screen.png (OK)
 2808928 res/drawable-port-xxhdpi-v4/screen.png (OK)
 2893792 res/drawable-port-xxxhdpi-v4/screen.png (OK)
 2994036 res/drawable-tvdpi-v4/common_full_open_on_phone.png (OK)
 2994620 res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png (OK)
 2995956 res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_focused.9.png (OK)
 2997900 res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_normal.9.png (OK)
 2999772 res/drawable-tvdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png (OK)
 3001592 res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_disabled.9.png (OK)
 3002624 res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_focused.9.png (OK)
 3004520 res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_normal.9.png (OK)
 3006328 res/drawable-tvdpi-v4/common_google_signin_btn_icon_light_pressed.9.png (OK)
 3008084 res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_disabled.9.png (OK)
 3009468 res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_focused.9.png (OK)
 3011508 res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_normal.9.png (OK)
 3013432 res/drawable-tvdpi-v4/common_google_signin_btn_text_dark_pressed.9.png (OK)
 3015340 res/drawable-tvdpi-v4/common_google_signin_btn_text_light_disabled.9.png (OK)
 3016416 res/drawable-tvdpi-v4/common_google_signin_btn_text_light_focused.9.png (OK)
 3018504 res/drawable-tvdpi-v4/common_google_signin_btn_text_light_normal.9.png (OK)
 3020348 res/drawable-tvdpi-v4/common_google_signin_btn_text_light_pressed.9.png (OK)
 3022143 res/drawable-v21/button_borderless_compat.xml (OK - compressed)
 3022458 res/drawable-v21/button_compat.xml (OK - compressed)
 3022752 res/drawable-xhdpi-v4/bubble.9.png (OK)
 3024008 res/drawable-xhdpi-v4/bubble_arrow_up.png (OK)
 3024560 res/drawable-xhdpi-v4/color_picker_advanced_select_handle.png (OK)
 3026732 res/drawable-xhdpi-v4/common_full_open_on_phone.png (OK)
 3027316 res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png (OK)
 3028936 res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_focused.9.png (OK)
 3031568 res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_normal.9.png (OK)
 3034032 res/drawable-xhdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png (OK)
 3036468 res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_disabled.9.png (OK)
 3037768 res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_focused.9.png (OK)
 3040580 res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_normal.9.png (OK)
 3042904 res/drawable-xhdpi-v4/common_google_signin_btn_icon_light_pressed.9.png (OK)
 3045240 res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_disabled.9.png (OK)
 3046972 res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_focused.9.png (OK)
 3049728 res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_normal.9.png (OK)
 3052304 res/drawable-xhdpi-v4/common_google_signin_btn_text_dark_pressed.9.png (OK)
 3054848 res/drawable-xhdpi-v4/common_google_signin_btn_text_light_disabled.9.png (OK)
 3056220 res/drawable-xhdpi-v4/common_google_signin_btn_text_light_focused.9.png (OK)
 3059148 res/drawable-xhdpi-v4/common_google_signin_btn_text_light_normal.9.png (OK)
 3061580 res/drawable-xhdpi-v4/common_google_signin_btn_text_light_pressed.9.png (OK)
 3064004 res/drawable-xhdpi-v4/common_ic_googleplayservices.png (OK)
 3066452 res/drawable-xhdpi-v4/dropdown_popup_background_down.9.png (OK)
 3067136 res/drawable-xhdpi-v4/dropdown_popup_background_up.9.png (OK)
 3067796 res/drawable-xhdpi-v4/ic_action_discard_dark.png (OK)
 3068228 res/drawable-xhdpi-v4/ic_action_discard_light.png (OK)
 3068656 res/drawable-xhdpi-v4/ic_action_done_dark.png (OK)
 3069376 res/drawable-xhdpi-v4/ic_action_done_light.png (OK)
 3070092 res/drawable-xhdpi-v4/ic_action_next_item.png (OK)
 3070480 res/drawable-xhdpi-v4/ic_action_previous_item.png (OK)
 3070864 res/drawable-xhdpi-v4/ic_action_remove.png (OK)
 3071192 res/drawable-xhdpi-v4/ic_launcher.png (OK)
 3078060 res/drawable-xhdpi-v4/ic_menu_share_holo_light.png (OK)
 3079028 res/drawable-xhdpi-v4/ic_os_notification_fallback_white_24dp.png (OK)
 3079480 res/drawable-xhdpi-v4/ic_search.png (OK)
 3080184 res/drawable-xhdpi-v4/ic_warning.png (OK)
 3080460 res/drawable-xhdpi-v4/icon.png (OK)
 3092760 res/drawable-xhdpi-v4/ondemand_overlay.9.png (OK)
 3100804 res/drawable-xhdpi-v4/verify_checkmark.png (OK)
 3102200 res/drawable-xxhdpi-v4/common_full_open_on_phone.png (OK)
 3102788 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_disabled.9.png (OK)
 3105072 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_focused.9.png (OK)
 3108964 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_normal.9.png (OK)
 3112496 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_dark_pressed.9.png (OK)
 3115984 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_disabled.9.png (OK)
 3117756 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_focused.9.png (OK)
 3121988 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_normal.9.png (OK)
 3125340 res/drawable-xxhdpi-v4/common_google_signin_btn_icon_light_pressed.9.png (OK)
 3128656 res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_disabled.9.png (OK)
 3131192 res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_focused.9.png (OK)
 3135304 res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_normal.9.png (OK)
 3139100 res/drawable-xxhdpi-v4/common_google_signin_btn_text_dark_pressed.9.png (OK)
 3142856 res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_disabled.9.png (OK)
 3144824 res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_focused.9.png (OK)
 3149340 res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_normal.9.png (OK)
 3152920 res/drawable-xxhdpi-v4/common_google_signin_btn_text_light_pressed.9.png (OK)
 3156508 res/drawable-xxhdpi-v4/common_ic_googleplayservices.png (OK)
 3160832 res/drawable-xxhdpi-v4/ic_action_next_item.png (OK)
 3161296 res/drawable-xxhdpi-v4/ic_action_previous_item.png (OK)
 3161760 res/drawable-xxhdpi-v4/ic_action_remove.png (OK)
 3162180 res/drawable-xxhdpi-v4/ic_menu_share_holo_light.png (OK)
 3163588 res/drawable-xxhdpi-v4/ic_os_notification_fallback_white_24dp.png (OK)
 3164236 res/drawable-xxhdpi-v4/ic_search.png (OK)
 3165304 res/drawable-xxhdpi-v4/ic_warning.png (OK)
 3165648 res/drawable-xxhdpi-v4/icon.png (OK)
 3188628 res/drawable-xxhdpi-v4/verify_checkmark.png (OK)
 3190876 res/drawable-xxxhdpi-v4/ic_menu_share_holo_light.png (OK)
 3192592 res/drawable-xxxhdpi-v4/ic_os_notification_fallback_white_24dp.png (OK)
 3193384 res/drawable-xxxhdpi-v4/ic_search.png (OK)
 3194736 res/drawable-xxxhdpi-v4/ic_warning.png (OK)
 3195152 res/drawable-xxxhdpi-v4/icon.png (OK)
 3229980 res/drawable-xxxhdpi-v4/verify_checkmark.png (OK)
 3232596 res/drawable/autofill_chip_inset.xml (OK - compressed)
 3233012 res/drawable/bubble.9.png (OK)
 3233584 res/drawable/bubble_arrow_up.png (OK)
 3233788 res/drawable/button_compat_shape.xml (OK - compressed)
 3234109 res/drawable/color_button_background.xml (OK - compressed)
 3234628 res/drawable/color_picker_advanced_select_handle.png (OK)
 3235604 res/drawable/color_picker_border.xml (OK - compressed)
 3235944 res/drawable/common_google_signin_btn_icon_dark.xml (OK - compressed)
 3236343 res/drawable/common_google_signin_btn_icon_light.xml (OK - compressed)
 3236740 res/drawable/common_google_signin_btn_text_dark.xml (OK - compressed)
 3237139 res/drawable/common_google_signin_btn_text_light.xml (OK - compressed)
 3237523 res/drawable/dropdown_label_color.xml (OK - compressed)
 3237863 res/drawable/dropdown_popup_background.xml (OK - compressed)
 3238216 res/drawable/dropdown_popup_background_down.9.png (OK)
 3238652 res/drawable/dropdown_popup_background_up.9.png (OK)
 3239076 res/drawable/grid_background.xml (OK - compressed)
 3239472 res/drawable/ic_menu_share_holo_light.png (OK)
 3239836 res/drawable/ic_search.png (OK)
 3240200 res/drawable/ic_warning.png (OK)
 3240484 res/drawable/ondemand_overlay.9.png (OK)
 3244428 res/drawable/verify_checkmark.png (OK)
 3245165 res/layout-land-v21/date_time_picker_dialog.xml (OK - compressed)
 3245746 res/layout-land/date_time_picker_dialog.xml (OK - compressed)
 3246296 res/layout-v17/autofill_keyboard_accessory_item.xml (OK - compressed)
 3246946 res/layout-v17/color_picker_advanced_component.xml (OK - compressed)
 3247628 res/layout-v17/color_picker_dialog_content.xml (OK - compressed)
 3248381 res/layout-v17/color_picker_dialog_title.xml (OK - compressed)
 3249068 res/layout-v17/date_time_suggestion.xml (OK - compressed)
 3249639 res/layout-v17/dropdown_item.xml (OK - compressed)
 3250337 res/layout-v17/multi_field_time_picker_dialog.xml (OK - compressed)
 3251231 res/layout-v17/onesignal_bgimage_notif_layout.xml (OK - compressed)
 3252055 res/layout-v17/two_field_date_picker.xml (OK - compressed)
 3252580 res/layout-v17/validation_message_bubble.xml (OK - compressed)
 3253417 res/layout-v21/date_time_picker_dialog.xml (OK - compressed)
 3253994 res/layout/actionbar_custom_view_done_discard.xml (OK - compressed)
 3254448 res/layout/actionbar_discard_button.xml (OK - compressed)
 3254991 res/layout/actionbar_done_button.xml (OK - compressed)
 3255530 res/layout/activity_photo.xml (OK - compressed)
 3256348 res/layout/autofill_keyboard_accessory_icon.xml (OK - compressed)
 3256675 res/layout/autofill_keyboard_accessory_item.xml (OK - compressed)
 3257321 res/layout/color_picker_advanced_component.xml (OK - compressed)
 3258005 res/layout/color_picker_dialog_content.xml (OK - compressed)
 3258753 res/layout/color_picker_dialog_title.xml (OK - compressed)
 3259437 res/layout/date_time_picker_dialog.xml (OK - compressed)
 3259965 res/layout/date_time_suggestion.xml (OK - compressed)
 3260528 res/layout/dropdown_item.xml (OK - compressed)
 3261199 res/layout/multi_field_time_picker_dialog.xml (OK - compressed)
 3262065 res/layout/multiselectorgrid.xml (OK - compressed)
 3262657 res/layout/onesignal_bgimage_notif_layout.xml (OK - compressed)
 3263456 res/layout/swingwebview_control_layout.xml (OK - compressed)
 3264378 res/layout/two_field_date_picker.xml (OK - compressed)
 3264892 res/layout/validation_message_bubble.xml (OK - compressed)
 3265709 res/menu/select_action_menu.xml (OK - compressed)
 3266295 res/raw/consumer_onesignal_keep.xml (OK - compressed)
 3266812 res/raw/empty.wav (OK)
 3266918 res/raw/icudtl.dat (OK - compressed)
 5531664 res/raw/launch_screen_api.js (OK - compressed)
 5531936 res/raw/wifidirect_api.js (OK - compressed)
 5533312 res/raw/xwalk.pak (OK - compressed)
 6223441 res/raw/xwalk_100_percent.pak (OK - compressed)
 6299956 res/xml/apppreferences.xml (OK - compressed)
 6300463 res/xml/config.xml (OK - compressed)
 6305400 resources.arsc (OK)
 6635721 classes.dex (OK - compressed)
 8464750 build-data.properties (OK - compressed)
 8465360 jsr305_annotations/Jsr305_annotations.gwt.xml (OK - compressed)
 8465541 lib/armeabi-v7a/libxwalkcore.so (OK - compressed)
28361446 lib/armeabi-v7a/libxwalkdummy.so (OK - compressed)
Verification succesful

'Andorid' 카테고리의 다른 글

google-play-services(libproject)  (0) 2017.12.08
FCM 과 GCM 차이? - 펌  (0) 2017.11.25
apk 파일 keystore 적용하기  (0) 2017.08.29
BlueStacks 설치하기  (0) 2017.08.09
Apktool, apk-sign  (0) 2017.06.14
(Android) MMS in Android  (0) 2017.06.13

1. 아래 경로에서 프로그램을 다운받습니다.

http://www.bluestacks.com/download.html?utm_campaign=dark-avenger-ap-ko

 

2. 설치합니다.

 

3. 실행합니다.

 

4. Google 계정에 로그인 하고 원하는 게임을 설치합니다.

 

5. 게임을 즐깁니다.

'Andorid' 카테고리의 다른 글

FCM 과 GCM 차이? - 펌  (0) 2017.11.25
apk 파일 keystore 적용하기  (0) 2017.08.29
BlueStacks 설치하기  (0) 2017.08.09
Apktool, apk-sign  (0) 2017.06.14
(Android) MMS in Android  (0) 2017.06.13
온라인 앱 테스트도구 - 앱을 다양한 기기에서 테스트 하기(SMAC)  (0) 2017.06.07

Apktool

링크 : http://ibotpeaches.github.io/Apktool/

ApkTool은 apk파일은 디컴파일하거나 수정한 후 다시 컴파일 할 수 있는 Tool .

d 옵션 : decompile 해주는 옵션으로 smali 파일로 나온다.

b 옵션 : recompile 해주는 옵션으로 apkfile이 파일로 나오며, signing을 거쳐 안드로이드폰에 설치가 가능하다.

d -d 옵션 : decompile 해주는 옵션으로 smali 파일이 나오지만, 확장자를 java파일로 만들어주어 동적디버깅 할 때 사용된다고 한다.



apk-sign

링크 : https://github.com/appium/sign

안드로이드에는 signing되지 않은 앱은 설치되지 않는데 Apk Tool 을 이용해 decompile을 하면 signing이 풀리게된다.

때문에 폰에 설치를 하기 위해서는 signing을 해주어야 하는데,  아무 keystore를 가지고 signing만 해주도록하여 폰에 설치가 가능하도록 한다.

MMS in Android. Part 1. Sending and receiving MMS

August 13, 2011 § 5 Comments

Judging by forums questions (and my own experience) sending mms programmatically is quite complicate issue. That is because there is no documented API for it. To start working with mms we will need to use some undocumented classes. Happily Android OS is open source project. So we can download some classes from http://android.git.kernel.org/ and use it in our code. I know that it is not the best solution (while in future version this code could be modified) but it is the only one if you want to work with mms from your code.

Before starting working with mms I would recommend get to touch with Multimedia Messaging Service Encapsulation Protocol documentation.

There are different Multimedia Message Types. Each of them has own purpose. Here is the most important ones that we will use below:

  • “m-send-req” – sending message
  • “m-notification-ind” – provide the MMS Client with information about a MM located at the recipient MMS Proxy-Relay and waiting for retrieval. Client after that should fetch MM. It doesn’t contain Message Body but only Header.
  • “m-delivery-ind” – delivery report of MM

Here are inner classes that we can use.

We will need (you can copy the whole file or “borrow part of them”):

  • android.provider.Telephony
  • com.google.android.mms.ContentType
Files from com.google.android.mms.pdu package:
  • PduHeaders – contains map of headers
  • PduBody – includes PduParts
  • PduPart – consists of part header, data uri, part data
  • GenericPdu – wraps PduHeader
  • MultimediaMessagePdu – extends GenericPdu, adds PduBody to it
  • SendReq – extends MultimediaMessagePdu, represents sending request – “m-send-req” type
  • DeliveryInd – extends GenericPdu , represents delivery report – “m-delivery-ind” type
  • NotificationInd –  extends GenericPdu , represents notification about incoming message (that is stored in MMBOX and should be retrieved from there) – “m-notification-ind” type
  • PduComposer – translate Pdu to byte[]
  • PduParser – translate byte[] to Pdu
  • PduPersister – stores MM in storage.

Ok, here are the tasks to implement comprehencive mms support for your application:

  • Sending mms
  • Receiving delivery/read report
  • Receiving incoming mms
  • Getting list of mms from storage
  • Inserting/updating/deleting mms data to/at/from storage

First of all you should understand what points from above list you are going to implement.

So, in order…

Sending mms

MMS unlike SMS is send through http connection. Actually it is just request to mmsc (Multimedia Message System Center).

First of all we have to request Connectivity Service to enable mms:

  ConnectivityManager mConnMgr = 
        (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
  int result = mConnMgr.startUsingNetworkFeature(
        ConnectivityManager.TYPE_MOBILE, "enableMMS");

If result is 0 (APN_ALREADY_ACTIVE) we can start sending MMS. But likely it is not. In that case we have to wait while it become ACTIVE. We can register broadcast receiver that listens “ConnectivityManager.CONNECTIVITY_ACTION” action. At onReceive() method of our receiver we check whether connectivity manager is ready to send mms:

    String action = intent.getAction();
    if (!action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
        return;
    }

    NetworkInfo mNetworkInfo = (NetworkInfo) intent.getParcelableExtra(
        ConnectivityManager.EXTRA_NETWORK_INFO);

    // Check availability of the mobile network.
    if ((mNetworkInfo == null) ||
        (mNetworkInfo.getType() != ConnectivityManager.TYPE_MOBILE_MMS)) {
        return;
    }

    if (!mNetworkInfo.isConnected()) {
        return;
    } else {
	//send mms
    }

How to send mms when we are ready to do it? We can watch sources of standard messaging client that are open as almost everything in Android. To implement the same solution is not too complicated but quite intricate.

Or we can use API that was designed by Nokia that encapsulates all complexity. You can find more information and links here.

But none of the solutions works with Samsung (at list Galaxy S and Galaxy Tab). It throws exception during http request to mmsc. It seems that Samsung have changed some network properties. I have not yet figured out how to cope with it.

Receiving delivery/read report

We should implement BroadcastReceiver with follow intent filter:

    <intent-filter>
        <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
        <data android:mimeType="application/vnd.wap.mms-message" />
    </intent-filter>

In onReceive() we get pdu byte[] from intent and transform it in GenericPdu object via PduParser:

    byte[] pushData = intent.getByteArrayExtra("data");
    PduParser parser = new PduParser(pushData);
    GenericPdu pdu = parser.parse();

Than we get the pdu’s type and check whether it delivery/read report:

    int type = pdu.getMessageType();
    if(type == PduHeaders.MESSAGE_TYPE_DELIVERY_IND) {
        String messageId = new String(((DeliveryInd)pdu).getMessageId());
        //Notify app that mms with messageId was delivered
    }

Ok, here we can make a try to update data in storage. But it is not necessary. Standard messenger will do it for us. While device is not rooted it is impossible to delete or shut down standard client. And it makes our way a bit easier.

But if we want to make it anyway we get delivery status and make appropriate update of storage:

    int status = ((DeliveryInd)pdu).getStatus();
    if(status == PduHeaders.STATUS_RETRIEVED) {
        //message delivered. update storage
    }

There could be follow statuses:

  • PduHeaders.STATUS_EXPIRED
  • PduHeaders.STATUS_RETRIEVED
  • PduHeaders.STATUS_REJECTED
  • PduHeaders.STATUS_DEFERRED
  • PduHeaders.STATUS_UNRECOGNIZED
  • PduHeaders.STATUS_INDETERMINATE
  • PduHeaders.STATUS_FORWARDED
  • PduHeaders.STATUS_UNREACHABLE
The meaning is clear from it name. We can define how to act in each case. For example that’s how we can save update if the status ==  STATUS_RETRIEVED (delivered):
    ContentValues values = new ContentValues();
    values.put("msg_box; //type 2 == MESSAGE_TYPE_SENT
    String where = "_id" + " = '" + messageId + "'";
    context.getContentResolver().update(
            Uri.parse("content://mmsalues, where, null);

Receiving incoming MMS

When we have new inbox MMS we receive (in our broadcast receiver that is described above) pdu that has “m-notification-ind” type. But this pdu doesn’t contain multimedia data but only location at MMBOX of our mmsc where the content is situated. And we have to download it from that location.

Actually standard message client will do it for us. I will not write how to do it by our own. It is complicated process that take a lot of code at dozen classes. You can follow the path of tasks starting from com.android.mms.transaction.PduReceiver onReceive() method. If you really need the solution you can always use the code from that package.

출처 : https://maximbogatov.wordpress.com/2011/08/13/mms-in-android/

SMSConvey 라는 앱을 만든 후 에러 정보가 한동안 없었는데 Action Bar 에 아이콘을 넣은 후부터

android.view.InflateException 이라는 에러 정보가 뜨기 시작했다.

구글링을 해보니 화면을 그릴때 먼가 이미지 크기가 맞지 않아서 나는 에러이며

특정 이미지가 해당 경로에 없으면 발생할수 있는 에러라고 한다.

일단 화면크기별로 아이콘을 준비하지 못해서 발생되는 에러라고 판단이 되었다.

그리고 특정 기기에서 에러가 발생되는것 같았다. (에러 원인은 http://kjcoder.tistory.com/270 )

Galaxy Mega 6.3(meliusltektt) , LG G3 A(tigers) ,Galaxy S3(c1skt)  등.. 화면크기가 제각각인데;;;

일단 오류가 나는 현상을 보고 싶었지만

나한테는 그런 폰들이 없어 테스트 해볼수가 없었다

지인들에게도 깔아봤을때도 이상이없었는데

불행히도 위 에러 목록에 있는 핸드폰이 있질않았다..

있다 하더라도 매번 부탁할수도 없는 노릇이고...

그런데 Xamarin Forms 대표 카페에서 웹에서 앱을 테스트 할수 있는 도구가 있다고 해서 해봤다.

결론은 잘된다.. 잘되서 소개해본다.^^

 

https://www.appvillage.or.kr/main/main.do

위 사이트로 들어가서 일단 가입을 하자

보통 사이트 가입과 비슷하다 한가지 특이한건 ID 를 한글로 만들어야 한다. 영어는 입력이 안된다.

적응이 안되지만 한글로 만들어보니 잘되었다.

여기선 비번 찾을때 이용자정보 찾기 질문 을 가지고 비번을 찾을 수가 있다.

그러므로 잘 기억될수 있는걸로 질문을 선택하고 답변을 적자...

가입을 완료 했으면 로그인을 하고 아래 초기화면에서 온라인 앱 테스트 도구를 선택하자.

모바일 테스트 시작 을 클릭하면

먼가 설치가 덜 되었다고 뜬다. JAVA 기반으로 만들어 져있나보다.

아래 알림창으로 뜬걸 설치 하니..

아래처럼 PASS 가 떴다. 이네 앰 테스트 시작하기 를 클릭하자

실행

사용할 수 있는 핸드폰 목록이 쫙 뜬다.

Note4 에서도 에러가 난다고 해서 Note4 를 선택했다.

예약하기 는 머지??

시작하기 를 선택하니 아래 처럼 핸드폰 화면이 바로떴다.

이제 내가 구글플레이에 배포했던 앱을 깔아 봐야겠다.

로컬에 apk 파일이 있다면 직접 apk 을 선택해 깔아 볼수 있다.

앱 설치하기를 선택하고

Browse 를 선택하여 apk 파일을 선택한다.

설치가 진행중이다.

아래 화면에서 보듯이 어플이 설치된 것을 볼수 있다. (SMSConvey)

실행해 보니 역시나 바로 중단되고 나가버린다.;;; 에러가 나긴 났구나;;;

예상되는 에러 부분을 찾아 수정하고 다시 설치해보고 테스트 해봐야겠다.

이렇게 핸드폰이 없이도 여러 핸드폰으로 앱 테스트가 가능하다.

 

참고로 아이폰도 가능한데 아이폰은 아래 그림처험 iPhone 6 Plus 하나만 지원한다.

+ Recent posts

티스토리 툴바