.gz 과 .zip 은 다르다.

PUBLISHED 2012/02/20 11:04
POSTED IN make
발췌, http://zlib.net/manual.html 

The library also supports reading and writing files in gzip (.gz) format

  with an interface similar to that of stdio using the functions that start

  with "gz".  The gzip format is different from the zlib format.  gzip is a

  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.


     This library can optionally read and write gzip streams in memory as well.


나만 헤깔렸던 포맷.
.gz 와 .zip은 다르다.
예전까지 아무생각 없이 둘은 같은줄 알았다.
이름 때문이었나? 아 쪽팔려 ==3=3=3

'make' 카테고리의 다른 글

.gz 과 .zip 은 다르다.  (0) 2012/02/20

아이폰 앱 업로드 에러

PUBLISHED 2011/04/14 16:53
POSTED IN make/iPhone
말 그대로 앱 업로드에러.
Apple's web service operation was not successful
Unable to process upload done request at this time due to a general error (1018)
The upload process CANNOT be completed for the package xxxxxxx.itmsp


Application Uploader로 업로드시
이것 저것 다 체크하고 앱스토어로 업로드 하고 거의 100%에 다 갈쯤
저런 에러를 내보냈다.

내가 재수가 없던 탓인지 저런 에러는 정말 소수만 나는 것인지
검색해도 안나온다.

도대체 1018 에러는 뭘까? ㅡ.ㅡ;

애플포럼에서 딱 한군데 검색되는데 그냥 될때까지 인내심있게 기다려라고 나온다.

그냥 좀 많이 짜증이 확 쌓인다.

참 그리고 추가로 Application Uploader 는 이제 itunes connect 의
Manage Your Application 밑에서 다운로드 받을 수 없다.
거긴 그냥 가이드 문서만 링크되어 있다.

가이드 문서 안에 보면 이렇게 써 있다.

To install Application Loader on Mac OS X from iTunes Connect:
1.    Click the Download Application Loader link (http://itunesconnect.apple.com/apploader/ApplicationLoader_1.3.dmg) in the iTunes Connect Manage Your Applications page (http://www.ap- ple.com/itunes/go/itunesconnect/manageApps).


여기서 직접 다운 받으면 된다. (http://itunesconnect.apple.com/apploader/ApplicationLoader_1.3.dmg)

어쩌다 보니 아이폰도 개발하긴 하지만,
좀 엿같은건 어쩔수 없다. 프로세스가 너무 복잡하다.

나중엔 분명 안드로이드 개발자가 훨 많이 늘어나고 안드로이드 마켓이
더 활성화 되고 하면 앱스토어만큼 커질꺼야..

너무나 폐쇄적인건 언젠가 정말 폐쇄하고 말꺼라고 :-(

아이씨! 아이폰 개발 첫 포스팅이 짜증이라니!!

'make > iPhone' 카테고리의 다른 글

아이폰 앱 업로드 에러  (0) 2011/04/14
지난 9월 디자이어가 2.2 프로요로 업그레이드 하고 난 후 벌써 한달이
훌쩍 넘어버렸네요.

현재 2.2는 넥서스원과 디자이어.
뭐지? 왜 나온다는 기타등등의 안드로이드 폰 프로요 업데이트는 안나오는 거냐구.

각설.
몇일전에, 아마도 t-store 에 안드로이드 어플 올려놓은 개발자들은 받았을..,
하여튼 2.2 지원을 안하면 경고와 함꼐 판매중지라는 협박(?) 메일은
받은 분들도 계시겠지만, 어쨌뜬, 티스토어건 구글마켓이건 어플 받으면
왜 이렇게 주 메모리에 설치 안 시켜서 난리냐구요.

네. 물론 주 메모리 사뿐히 설치해주셔야 하는 앱들도 계십니다.
하지만 그 외, 덩어리 몇 메가씩 해주시는 찬란한 어플들은
이제 SD카드 이동가능하도록 업뎃좀 해주세요.
(널널한 메인메모리 가진 갤s 따위 잊고 불쌍한 주메모리 가진 사용자들을 생각해주세요 ㅠㅠ )

사실, 그게 그렇게 어려운일도 아니잖아요? 단 서너줄이면 끝난다구요.
그것도 AndroidManifest.xml 만.. ㅡ.ㅡ;

자, 다들 아시겠지만,
이렇게 해주세요.
아주 간단합니다.

AndroidManifest.xml 파일을 엽니다.
<manifest android:installLocation="preferExternal"> 를 추가합니다.
Project Properties 에서 안드로이드 SDK 버전을 2.2로 변경하세요.
2.1과의 호환성을 위해 AndroidManifest.xml 에서
<uses-sdk android:minSdkVersion="7" /> 로 하세요.

preferExternal 은 일단 외부메모리(SD)로의 설치를 기본으로 합니다.
하지만, 무조껀은 아니고 공간이 남아 있으면요.

installLocation 이 auto 로 세팅되면 안드로이드가 알아서 남아 있는 공간에 세팅합니다.

자, 여기 외부 메모리에 설치하면 안되는 경우예요.
Services
Your running Service will be killed and will not be restarted when external storage is remounted. You can, however, register for the ACTION_EXTERNAL_APPLICATIONS_AVAILABLE broadcast Intent, which will notify your application when applications installed on external storage have become available to the system again. At which time, you can restart your Service.
Alarm Services
Your alarms registered with AlarmManager will be cancelled. You must manually re-register any alarms when external storage is remounted.
Input Method Engines
Your IME will be replaced by the default IME. When external storage is remounted, the user can open system settings to enable your IME again.
Live Wallpapers
Your running Live Wallpaper will be replaced by the default Live Wallpaper. When external storage is remounted, the user can select your Live Wallpaper again.
Live Folders
Your Live Folder will be removed from the home screen. When external storage is remounted, the user can add your Live Folder to the home screen again.
App Widgets
Your App Widget will be removed from the home screen. When external storage is remounted, your App Widget will not be available for the user to select until the system resets the home application (usually not until a system reboot).
Account Managers
Your accounts created with AccountManager will disappear until external storage is remounted.
Sync Adapters
Your AbstractThreadedSyncAdapter and all its sync functionality will not work until external storage is remounted.
Device Administrators
Your DeviceAdminReceiver and all its admin capabilities will be disabled, which can have unforeseeable consequences for the device functionality, which may persist after external storage is remounted.
네. 서비스, 알람, 월페이퍼, 라이브폴더 등등 system dependancy 한 앱들은
주메모리에 설치하셔야 합니다.
뭐, 대충 짐작가시겠지만, SD 카드 구동되고 좀 있다가 bind 합니다.
뻑날수 있으니 조심하란 얘기겠지요.

좀 자세한 얘기는 요 바로 밑에 링크를 봐주세요.
http://developer.android.com/guide/appendix/install-location.html

자, 이제 곧 대부분의 안드로이드 폰들이 프로요로 업뎃한다고 하니
미리미리 대비해주세요!

디자이어 테더링

PUBLISHED 2010/09/21 03:34
POSTED IN make/Android



Android 2.2(froyo) 부터 자체 지원하는 테더링!
이런저런 사정을 집에 인터넷 회선을 모두 끊어버렸는데, 가벼운 인터넷
검색과 쇼핑은 아름다운(?) 무제한 요금제와 테더링으로 충분히
커버가능하다.

거의 대부분을 회사에서 보내는 나로써는 집에서 기껏해야 한두시간
인터넷을 사용하는데 그것도 가벼운 뉴스나 RSS 검색만 하는 나로썬
비싼(?) 인터넷 회선을 유지하는 것보단 어쩌면 더 나을지도.

다만, 다운로드나 쇼핑등의 이미지가 많은 페이지는 역시 느리다.
느리고 늦은 밤과 새벽에만 테더링을 사용하다 보니 적당한 속도가
나오는 것이 아닌가 하는 생각도 든다.

어쨌든, 그다지 나쁘지는 않네 :-)

다만, debian 이나 ubuntu 등의 네트웍 인스톨을 위해선 쥐약!! ㅋ
아! 어쨌든 세상은(특히나 IT) 급변하는 구나!

그 급변하는 소용돌이 속에 대한민국은 어디에 ㅡ.ㅡ;;

아시다 시피,
SKT에서 나왔으면 더 좋았을 넥서스원과 조망간 나올 S-PAD 혹은
Galaxy TAB 이라고 하는 삼성의 안드로이드 패드는 프로요가
탑재되어 있습니다.

안드로이드 2.1로 개발하다 2.2에서 이상동작을 보이는(그래서 검증에 fail 떨어진...ㅡ.ㅡ)  몇가지 사태에 짜증내 하며 베타전문 구글에서 내 놓은 프로요에 뭐가 변화되었나 좀 뒤져봤습니다.

가장 큰 변화는 ActiviyManager 의 restartPackage 가 deprecate 된 것입니다. 네. 없앴죠. 2.1로 컴파일 하고 2.2에서 안 먹습니다.

http://developer.android.com/sdk/api_diff/8/changes.html

 

Changed Methods
void restartPackage(String) Now deprecated.
대신 void killBackgroundProcesses(String) 이라는 메쏘드를 하나 던져 줍니다.



더보기


네. 하지만 이 메쏘드는 restartPackage 처러 프로세스를 한번에 깨끗하게 처리해주지 않습니다.

restartPackage 라는 것도 어쩌면 자바? 혹은 안드로이드 정책에 어긋나는 메쏘드 였죠. 

프로세스 달빅에서 알아서 처리해 줍니다. 신경쓰지 마세요.


하지만, 100%란 없죠. 알아서 처리해주지만 깔끔하게 처리는 안해주죠.
System.gc()를 먹여도 지 멋대로 생각나면 처리해주죠.

개인적으로 프로그램을 죽일때 멋지게 한방에 죽일 수 있는 메쏘드였지만 구글은 그 꼴은 못보나 봅니다.

그래서 결국 메인화면에서 한방에 홈으로 빠져나가기 위해서는 startActivityForResult 로 적절하게 액티비티들을 처리해 주어야 합니다.

intent로 호출하면서 이전 페이지를 finish() 해주는 방식으로 처리하면
다시 처음으로 돌아왔을 때 메인에서 바로 홈으로 빠지게 되죠.

특히 SKT향 안드로이드 어플 제작자들은 무슨 얘긴줄 아실껍니다. 아니라도 그렇게 해주는게 사실 깔끔하죠.

뭐 어쨌뜬, 2.1 에서 2.2 마이너 업그레이드인데도 불구하고 자주 쓰던 메쏘드들이 계속적으로 변하고 있습니다. 물론 나쁜일은 아니고요.
점점 발전하고 안정화 되어가는 것으로 보고 있습니다.

2.5가 될지 3.0이 될지 모를 진저브레드에서의 변화가 궁금합니다만,
좀더 나은 방향으로 가고 있다는 것은 확실합니다.

여기서 추가되고 변화된 메쏘드및 클래스들을 확인하실 수 있습니다.
( http://developer.android.com/sdk/api_diff/8/changes.html )

또 하나 가장 자주 쓰는 속성중에 하나인 FILL_PARENT가 2.2부터는 MATCH_PARENT로 변경됩니다. 의미상 이름이 변화된것으로 보입니다.

deprecate 되었다고 해서 동작을 안 하는 것은 아닙니다만,
분명히 2.1과 2.2가 다르게 보이는 혹은 동작하지 않는 부분들이 존재합니다.
2.2를 지원해야 하는 어플들은 아마 신경을 쓰셔야 할 것입니다.


이미 프로요가 나온지 몇달이 지났지만,  출시폰들이 2.1이 아직까지는 많고 2.2가 탑재될쯤에 진저브레드가 나올것 같은 한발늦은 제조사들의 발걸음을 재촉하면서 뒷북 쳐봅니다.



Android HOME key 제어

PUBLISHED 2010/08/03 21:35
POSTED IN make/Android
Defines a device key and behavior for a search action. A search action provides a special behavior at the touch of a button on the device, based on the current query or focused suggestion. For example, the Contacts application provides a search action to initiate a phone call to the currenly focused contact suggestion at the press of the CALL button.

Not all action keys are available on every device, and not all keys are allowed to be overriden in this way.

For example, the "Home" key cannot be used and must always return to the home screen. Also be sure not to define an action key for a key that's needed for typing a search query.
This essentially limits the available and reasonable action keys to the call button and menu button. Also note that action keys are not generally discoverable, so you should not provide them as a core user feature.

출처: http://developer.android.com/guide/topics/search/searchable-config.html


저 미안하지만 테스트 좀 제대로 할래? 안드로이드 홈키는 제어 안되거든? 홈키 눌리면 백그라운드 프로세스를 멈추라는 멍청한 얘기는 하지 말라구.난 "또라이"라고 떠벌리지 말란 말이야.