라벨이 Android인 게시물 표시

OwlAPI and HermiT on Android (> Android P, SDK 28)

[Implementation Issues on OwlAPI and HermiT on > Android P] [문제 현상] Android 9 (P, SDK 28) 이상에서 Owl API 이용하기 위해서, Gradle 설정 변경 compiledSdkVersion, targetSdkVerison 들을 28로 변경 기존 코드 실행 시 에러 OWL 초기화 시 다음과 같은 오류 발생함 W/System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".     SLF4J: Defaulting to no-operation (NOP) logger implementation     SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. W/edependencytes: Accessing hidden field Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe; (light greylist, reflection) W/edependencytes: Accessing hidden field Ljava/lang/Thread;->threadLocalRandomProbe:I (dark greylist, reflection) D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main     Process: {패키지}.gradledependencytest, PID: 23725     java.lang.NullPointerException         at java.util.Objects.requireNonNull(Objects.java:203) SLF5J...

OwlAPI and HermiT on Android

[Implementation Issues on Using Ontology] OWL API로 온톨로지를 모델링하고 HermiT로 추론하는 작업을 구현할 때 발생하는 문제들과 해결 방안을 정리해 본다. 1. Java (for test) 필요한 환경은 Maven의 dependency를 이용하면 간단하게 구성할 수 있고, API를 이용한 프로그래밍에 주력하면 됨. Java 호환성 1.8 명시 <properties>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>     <maven.compiler.source>1.8</maven.compiler.source>     <maven.compiler.target>1.8</maven.compiler.target> </properties> Maven 프로젝트용 pom.xml에 dependency 추가 <dependency>     <groupId>net.sourceforge.owlapi</groupId>     <artifactId>owlapi-distribution</artifactId>     <version>5.0.5</version> /dependency> <dependency>     <groupId>net.sourceforge.owlapi</groupId>     <artifactId>org.semanticweb.hermit</artifactId>    ...

Android Wear - Developer Preview

어제(?), 오늘 발표된 내용. 잠깐 사이트 들어가서 훑어보면서 몇 가지 정리. 1. Get started... 여기서 시작. http://developer.android.com/wear/preview/start.html 2. UI Overview Suggest: The Context Stream Vertical list of cards. 안드로이드 폰이나 태블릿의 구글 나우와 같은 정보를 보여주는 역할. 단, 화면에는 한 번에 하나의 카드만 나타남. 위/아래로 훑으면서 각 카드를 살펴볼 수 있고, 해당 카드에서 옆으로 훑으면 추가 tappable 버튼이 나타나는 구조. Demand: The Cue Card "Ok Google" 음성 명령이나 g 아이콘을 클릭해서 원하는 큐 카드를 선택할 수 있음. 현재 구글의 음성 명령 기능에 대응되어 있는데, 향후 SDK에서 개발자가 원하는 앱과 연결할 수 있도록 될 예정. 하나의 음성 intent에 여러 앱이 대응될 수도 있어서 사용자가 선택하도록 할 수도 있음. 3. Design Principles 어쩌면 가장 중요한 것. 철학. 일단 Android Wear experience를 정의. Contextually aware and smart.  These devices bring a new level of awareness to computing. Rather than requiring attention and input from users, Android Wear devices are aware of their situation and state, and helpfully display the right information at the right time.  Timely, relevant, specific . Glanceable.  Wearable devices are used all throughout the day, even when they sit in ...

갤럭시 넥서스 순정롬으로 바꾸자!!!

이미지
언제까지 삼성과 국내 통신사의 이해관계에 끌려다녀야 하나... 고민하다가 갤럭시 넥서스를 순정 롬으로 바꾸기로 결정! 이미 좋은 글들이 많아서, 검색으로 참고할 블로그를 검색. 아래 순서대로 읽어보고 작업하기로 결정했다. http://sodong212.blog.me/130159757789 http://sodong212.blog.me/130157893693 새롭게 차이가 있다면, 4.3 버전을 받아왔다는 것. Factory Images "takju" for Galaxy Nexus "maguro" (GSM/HSPA+) (with Google Wallet) Version Download MD5 Checksum SHA-1 Checksum 4.0.4 (IMM76I) Link 26ede55c44b503e4ab02969c22fa16e1 e8c33767bfc9fbb360b72b26f4e9a41a2e4c74c4 4.1.2 (JZO54K) Link 4e79a918a9a366166d0c23f99cc240db 92830c0b09d186c53548664bf2049c9b7c896ae4 4.2.2 (JDQ39) Link 2fae8a6f50016e83f232fbb2d099fd42 5e273f0203f6803e5e4b2a79683a233d7e8094ce 4.3 (JWR66V) Link 6fcb316e2ce5226e1d0397b74c50db50 c2ef855e8f9477b8b3dfeae1940eec1274c611e4 어쨌든, 받은 경로와 파일이름들에 유의하면서 작업. USB 드라이버 설치 Fastboot 설치 순정 ROM 다운로드 휴대폰 설정 (USB 디버깅 설정 + 부트로더 모드로 부팅) 부트로더 unlock 부트로더 이미지 바꾸기 라디오 이미지 바꾸기 시스템 이미지 바꾸기 이상 문제가 없다면, 시스템이 재부팅된다. 성공한 사진들... 속이 다 시원하다. 이제부터는 OTA...

Android 4.3 업그레이드

이미지
2013년 7월 25일 안드로이드 4.3 공개 2013년 7월 27일 넥서스 7 OTA 등장 딱히 눈에 띄는 변경사항은 없어보이지만, 언제나 발빠른 OTA에 만족! 반면, 갤럭시 넥서스는... 아직도 4.1.1이다. 분명히 업그레이드 대상에서 빠진 건 아닌데. 확실히 뭐가 있는거야...

[DevTip] Android - usb-serial-for-android 사용시 baud rate 바꾸기

안드로이드 단말(진저브레드 이상)의 USB OTG를 이용해 UART 통신을 할 때 baud rate 바꾸는 작업이 애매해서 조금 고생했다. 일단, usb-serial-for-android 라이브러리를 이용해서 포트를 열고 원하는 baud rate으로 설정하는 두 가지 방법. (코드에서 mUsbDriver 는 UsbSerialDriver의 instance로, mUsbDriver = UsbSerialProber.acquire(mUsbManager);  ) 1. 포트 오픈 후 설정 변경 mUsbDriver.open(); mUsbDriver.setParameters(<BaudRate>,<DataBits>,<StopBits>,<ParityBits>); 2. 설정 후 포트 오픈 mUsbDriver.setParameters(<BaudRate>,<DataBits>,<StopBits>,<ParityBits>); mUsbDriver.open(); 물론, 기본(default) baud rate로 사용할 때에는  mUsbDriver.open(); 만 써도 문제는 없다. 두 방법에 차이가 있을까? 결론적으로, 2번의 순서로는 원하는 baud rate으로 동작하지 않는다! 먼저 열고 나서 설정을 바꿔야 제대로 설정이 바뀌는 것을 확인할 수 있다. 실제 usb-serial-for-android 라이브러리의 소스에서 FtdiSerialDriver.java를 보면 open() 메쏘드에서는 항상 기본(default) 설정으로 포트를 설정하기 때문에 반드시 setParameters()가 나중에 호출되어야 한다. 헌데, CP210xSerialDriver.java에서는 setParameters() 메쏘드에서 입력으로 받은 설정 값들을 해당 클래스 내부 멤버 변수로 저장을 해 두고, 이후 open() 메쏘드에서는 그 값들을 사용해 USB-UART 칩셋을 설정하는...

[DevTip] Android - USB Host Debugging

USB Accessory를 연결한 상태에서는 USB 디버거 케이블을 연결할 수 없는데, 이 때는 adb를 tcp로 연결해서 작업할수 있음. 아래는 안드로이드에서 제공하는 설명. 원본 위치 <http://developer.android.com/guide/topics/connectivity/usb/index.html> Debugging considerations When debugging applications that use USB accessory or host features, you most likely will have USB hardware connected to your Android-powered device. This will prevent you from having an adb connection to the Android-powered device via USB. You can still access adb over a network connection. To enable adb over a network connection: Connect the Android-powered device via USB to your computer.  From your SDK platform-tools/ directory, enter adb tcpip 5555 at the command prompt.  Enter adb connect <device-ip-address>:5555 You should now be connected to the Android-powered device and can issue the usual adb commands like adb logcat .  To set your device to listen on USB, enter adb usb .

[DevTip] Android - android.graphics.Matrix

Path 에 대한 transform 예 mTransformMatrix.reset();             if ((mCurMax - mCurMin) > 0) {                     mTransformMatrix.postScale(1, -(mCurScrHeight >> 1)/(mCurMax - mCurMin));             } else {                     // Consider sample data uses 16-bit integer                     mTransformMatrix.postScale(1, -(mCurScrHeight >> 1)/((1 << 15) - 1));             }             mTransformMatrix.postTranslate(0, mCurScrHeight >> 1);  ...