본문 바로가기

Android

(7)
[Flutter] 빌드시 플렛폼 추가하기 안녕하세요. 플러터로 android 용 앱을 개발하다가 앱이 좀 괜찮으면 iOS로 확장하고 싶은 욕구가 생기겠죠? 그런데 처음부터 iOS를 염두해두고 프로젝트를 만들지 않았다면, 확장을 어떻게 해야 하나 할겁니다. 간단하게 확장하는 방법 정리 해봤습니다. 먼저 빌드할 플랫폼을 선택합니다. terminal에서 다음과 같이 입력하면 되는데요. $ flutter config --enable- ios 의 경우에는 flutter config --enable-ios 라고 입력 합니다. 그리고 나서 프로젝트를 재 생성 합니다. $ flutter create . 을 입력하면 다시 프로젝트가 재 생성됩니다. 사용 예 ) ~/$ flutter config --enable-ios Setting "enable-ios" val..
[Flutter] Bluetooth, BLE scanning 요즘 Flutter 로 ble device를 다루는 작업을 하고 있습니다. 아시다 시피 BLE 장치들은 기존 BT classic과 다르게 broadcasting 기능을 제공하고 있어서 S/W로직을 기존 BT classic과 동일하게 가져가기에는 무리가 있습니다. BLE 장치를 어떤 목적으로 어떻게 사용할것인가를 잘 구상 해야합니다. 구성 하고자 하는 장치를 미미(mimi)라고 합시다. 1. 미미에 탑재한 센서에서 읽은 값을 broadcasting 만 목적으로 한다. => BLE advertizement 2. 미미에 탑재한 센서에서 읽은 값을 연결되었을때만 데이타를 읽어갈 수 있도록 한다. => BLE service characteristics 3. 미미에 탑제된 여러 장치들을 제어하려고 한다. => co..
JNI, Native code build 시 유의점 android 프로그램을 개발하다 보면, 종종 C++ 또는 C로 작성된 코드를 사용해야 하거나, xxx.a 또는 yyy.so 와 같은 static library 또는 shared library 를 사용해야 하는 상황들이 발생합니다. static library static library는 소스(source) 빌드시 링킹 시점에 심볼(symbol)이 연결됩니다. 주로 xxx.a 처럼 .a 확장자를 사용합니다. shared library shared library는 런타임(runtime, 실행시점)때 필요시점에 library를 로딩해서 symbol이 연결됩니다. 주로 .so 또는 .dll 확장자로 사용됩니다. 이런 경우를 위해서 java에서는 JNI(java native interface) 를 제공하고 있습니..
[Copy&Paste]String 다루기 byte[] to String byte[] ={'a','b',}; String str = new String(data, StandardCharsets.UTF_8); byte[] ={'a','b',}; String str = new String(data); String.toCharArray() String str = "abcdefg"; char [] array = str.toCharArray(); String.getBytes(); String str= "Hello"; byte buff[] = str.getBytes(); //charset byte buff1[] = str.getBytes(StandardCharsets.UTF_8); //charset string try { byte buff2[] = str...
[android] flutter guide flutter: from install to product flutter-ko.dev/docs/get-started/install/linux 리눅스 설치 flutter-ko.dev
[Android] JavaDoc 사용법 링크. Java doc 의 문법으로 현재 구현중인 프로젝트의 문서화를 편리하게 관리할 수 있습니다. www.devkuma.com/books/pages/1249
[Andriod] Timer and TimerTask public class SimulatorView extends View{ TimerTask timerTask = new TimerTask(){ int frame = 0; @Override public void run() { // sim.grow(); frame++; if(frame > 100) { invalidate(); frame = 0; } } }; : public void start(){ timer = new Timer(); timer.schedule(timerTask,0, 20); } }