I just need a http downloader to use on android NDK, also ssl is not required on my app. so. I Search prebuilt curl library in google. but, most compiled version are not matched on my app. something conflict OpenSSL, something not works, and so on. After all, I decide to compile curl source code to use on my app. How to compile the curl source code. Below link explains How to compile, android co..
우선 Choreographer의 기본 방식을 모르는 독자는 다음의 링크를 보고 오기를 바란다. 기본적인 내용과 Java코드가 있다. jamssoft.tistory.com/231 안드로이드 Choreographer 사용하기 인스턴스 생성하기 Choreographer는 new를 통해 생성할 수도 없고, 다른 방법으로 만들어야 한다. Choreographer choreographer = Choreographer.getInstance(); 위와 같이 static함수를 호출하는 것으로 끝난다... jamssoft.tistory.com Native에서 Choreographer를 사용하려면 Api Level이 24(Nougat/누가)이상이 되어야 한다. 따라서 아직 누가 미만의 기기들이 많은 관계로 되도록이면 Jav..
인스턴스 생성하기 Choreographer는 new를 통해 생성할 수도 없고, 다른 방법으로 만들어야 한다. Choreographer choreographer = Choreographer.getInstance(); 위와 같이 static함수를 호출하는 것으로 끝난다. 어짜피 화면에 그려지는 시간이라는 것은 정해진 거라 한 개만 있으면 충분하기 때문에 singleton방식으로 동작하게 만들어 두었고, 따라서 공유되는 자원이라 필요가 없어져도 일부러 삭제할 필요도 없다. 물론 최소한의 메모리는 차지하기 때문에 다음과 같이 하는 것으로 삭제작업을 하면 된다. choregrapher = null; Choreographer는 Looper를 이용하기 때문에 "Choreographer.getInstance()"를 호..
byte[]를 String으로 byte[] => String String s = new String(b, "UTF_8"); // b => byte[] String => byte[] String str = "한글"; byte[] bin = str.getBytes( "UTF-8" ); 넘길/넘어온 데이터에 따라 'UTF-8' or 'EUC-KR'을 넣어주면 된다. 이건 검색하면 쉽게 찾을 수 있다. 근데... 만약에 byte[]를 String으로 변환하는 과정에서 byte[]의 크기가 무지막지하게 크다면, 위의 방법은 그래 좋은 방법이 아니다. 사실상 텍스트 데이터는 그리 크지 않기에 그냥 처리해 위와 같이 처리하면 웬만하면 다 처리할 수 있다. 다시 하지만, 큰 데이터를 안 다룰 경우가 없지 않다는 것이 ..
소스코드 ByteBuffer, IntBuffer, FloatBuffer, DoubleBuffer, ShortBuffer, LongBuffer, CharBuffer.. 등에는 flip, compact, clear등에 함수가 있다. 근데, 이 flip, compact, clear는 도대체가 뭐 하는 녀석인지.. 알기가 어렵다. 답은 개발자 식으로 말하면 Producer-Consumer방식을 사용하기 위해 있는 것이다. 이 Buffer들은 읽기모드와 쓰기모드가 있다. 현재상태에 따라 해야하는 작업이 정해진다. 읽기모드일 경우는 말 그대로 읽기명령(get함수등)등을 써야 하며, 쓰기모드에서는 쓰기명령(put함수 등)으로 Buffer에 작업을 하면 된다. 예로 이해하기 아주 간단한 예를 들어보겠다. Buffer에..
1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) multipart/form-data 1편에서 application/x-www-form-urlencoded방식을 설명했다. 이 방식의 가장 큰 문제 파일을 전송할 수 없다는 것이다. 파일을 전송하기위해서는multipart/form-data방식을 써야 한다. 이 방식의 전송데이터는 다음과 같이 생겼다. POST /test HTTP/1.1 Host: foo.example Content-Type: mu..
1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) 서버에 데이터를 전송하려면 기본적으로 "application/x-www-form-urlencoded" 방식을 쓴다. x-www-form-urlencoded의 구조는 다음과 같이 생겼다. 이름2=값1&이름2=값2&이름3=값3&이름4=값4 이름과 값이 한쌍을 이루며, 쌍을 분리하는 것은 '&', 이름과 값을 분리하는 것은 '='로 구분되어지게 된다. 여기서 이름과 값 모두 UrlEncoded라는 형..
1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) 목차 1. 서론 2. 준비사항 3. 파일로 다운로드 4. Self-Signed 인증서 5. String으로 받기 서론 안드로이드에서 web의 파일 등을 다운로드하려면 DownloadManager를 쓰면 쉽게 되지만 문제는 알림이 뜨게 된다. 여러 개를 다운로드하면 정신이 없을 정도다. 그냥 프로그램상에서 받았으면 할 경우가 있는 데, 이 때 사용할 것이 바로 HttpURLConnection이다...
안드로이드에서 지원하는 이미지 포맷 안드로이드 기본 디코더에서 지원하는 이미지 포맷은 현재 BMP, GIF, JPG, PNG, WebP, HEIF이며 WebP는 Android 4.0이상부터 WebP중 일부만 지원하고 무손실,투명은 4.2.1이상에서 지원한다. HEIF는 8.0부터 지원한다. 실제 프로그래밍할 경우는 읽을 수 있는 포맷만을 읽어들이기 때문에, 지원사항은 그리 중요하지 않다. 단지 이미지의 로딩에 성공/실패만이 필요할 따름이다. 만약 낮은 버전의 기기에서 WebP나 HEIF를 지원하고 싶다면 NDK를 이용하여 Decoder를 컴파일해서 앱에 넣어야 한다. 비트맵 로드하기 안드로이드에서는 이미지 파일/메모리등에서 바로 Bitmap을 생성할 수 있다. Bitmap BitmapFactory.dec..
Java는 unsigned 타입의 변수를 지원하지 않는다. 하지만 8bits의 공간만으로 처리할 수 있는 데이터는 더 큰 타입을 쓰는 것은 낭비인 것은 당연한 사실이다. 정수연산을 위해 byte와 int로 서로 변화하는 방법을 정리한다. byte(unsigned) to int byte f = 200; int t = f < 0 ? f + 256 : f; f를 t로 변환하는 데, f값은 음수값을 가지고 있다. 0을 포함한 양수면 그냥 처리하면 되지만, 음수일 경우 255을 더해서 변경해주면 된다. 하지만 이 변환루틴은 "?"연산자로 인해 많은 양의 연산이 필요한 부분에서는 속도저하를 유발한다. 다음의 방법이 훨씬 빠르고 좋다. byte f = 200; int t = f & 0xff; 참 의미 없는 코드로 보..
Detect orientation A android device has portrait and landsape orientations, usually, you could layout UI item, most thing can do by here. Add next code to do this, in AndroidMainfest.xml. android:configChanges="keyboardHidden|orientation" if android:configChanges already exists, only append orientation with "|" Override onConfigurationChanged function in your activity. public void onConfiguratio..
Orientation(방향) 알아내기 안드로이드 기기의 방향(orientation)은 Portrait(세로)과 Landscape(가로)가 있습니다. 보통 이 두가지의 방향에 따라 UI의 배치를 바꾸게 됩니다. 여기까지만 필요한 상황이면 다음의 코드로 해결할 수 있습니다. 우선 AndroidMainfest.xml파일에서 해당하는 Activity에 다음의 코드를 추가합니다. android:configChanges="keyboardHidden|orientation" 혹시나 configChanges에 다른 것이 이미 있다면, orientation만 | 를 사용하여 추가합니다. 위 한줄을 추가하는 것이 아닙니다.. 그리고 activity에 onConfigurationChanged함수를 Override합니다. pu..
ASyncTask 개요 예를들어, 안드로이드에서 리스트뷰 등을 사용할 때, 리스트뷰의 각각의 아이템마다 이미지를 그릴 경우가 많다. 이 경우 이미지를 불러와서 그려야 하는 데, 문제는 미리 메모리로 올려져있는 이미지가 아닐 경우, UI Thread에서 이미지를 로드할 경우 일반적으로 데이터크기가 큰 이미지를 처리하면 스크롤시 화면이 뚝뚝 끊기게 된다. 이미지를 저장장치에서 읽고, 이 것은 대부분 압축이 되어 있는 상태이므로 압축을 풀고 화면에 그려야 하는 데, 읽고 압축을 푸는 두 과정은 시간이 많이 드는 작업이다. 프로세서가 빨라지는 속도만큼 이미지의 크기도 커지고 화면도 해상도가 올라가기 때문에 시간이 지나 프로세서가 빨라 진다고 해도 좀처럼 이 끊김이 없어지는 걸 기대 할 수는 없는 상황이다. 이 ..
- Total
- Today
- Yesterday
- 애드핏
- 애드센스
- 아끼는 법
- 적금
- gpgpu
- 컴퓨트쉐이더
- 컴퓨트셰이더
- texture
- 금리
- OpenGLes
- 티스토리
- 전기요금
- 경제보복
- 공유 컨텍스트
- Android
- TTS
- ComputeShader
- 안드로이드
- OpenGL ES
- 예금
- 블로그
- 전기료
- 재태크
- 전기세
- 텍스처
- 에어콘
- 에어컨
- 재테크
- 사용료
- choreographer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |