본문 바로가기

프로그래밍

[android] Android studio xml rendering e Android Studio xml preview에서 아래와 같은 오류 메시지와 함께 Layout이 안나올 때가 있다. Rendering Problems The following classes could not be instantiated:- android.support.v7.app.WindowDecorActionBar (Open Class, Show Exception, Clear Cache) Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE Exception Details java.lang.NullPointerException at android.support.v7.a.. 더보기
[NDK] External tool javah 스크립트 만들기 많은 블로그에서 javah 생성 스크립트를 만들때 parameter 필드를 -classpath $Classpath$ -v -jni $FileClass$ 로 지정하는 것을 봤다. jni용 java header를 생성하는 명령어는 javah -jni [경로] [class이름] 이렇게 구성된다. 여기서 [경로]가 Android studio의 Tool-External Tools의 Parameters에 해당된다.그럼 알아야 할 것은 1. class파일이 어디에 생성되는지2. class파일의 루트는 어딘지(패키지명을 포함하는 마지막 위치) 나의 경우에는 다음과 같이 지정해 줬다. -classpath $ModuleFileDir$\build\intermediates\classes\debug -v -jni $FileCl.. 더보기
[NDK] javah class not found 문제native 예약어로 선언된 함수를 구현하기 위해 header와 c/cpp 파일을 생성할 때 javah가 동작하지 않음 D:\world\Projects\ToyJNI>javah -classpath %ANDROID_HOME%\platforms\android-23\androijar; com.sun.toy.jni.NativeMethodError: Could not find class file for 'com.sun.toy.jni.NativeMethod'. 위의 오류가 발생.발생원인 : class 파일의 경로가 잘못되었다. 수정 1차 : D:\world\Projects\ToyJNI\app\build\intermediates\classes\debug\com\sun\toy\jni>javah -jni NativeM.. 더보기
[android] SSO와 Service SSO를 구현하면서 아주 조금(0.1%)의 OAuth와 Service(AIDL)을 건드려봤다. AIDL - Android Interface Definition Language Android Application간의 통신수단Application을 Server와 Clinet로 굳이 나누었을 때, Server는 aidl을 정의하고 Service를 등록하고 구동한다.Client는 구동중인 Service를 찾아서 binding 한다. 그렇게 바인딩 된 객체를 통해 aidl에 정의된 함수를 Client가 호출하고 Server가 반환 할 수 있다. SSO - Sing Sign On https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EC%9D%B8%EC%A6%9D 통합인증. 단일.. 더보기
[android] onTouchEvent OnTouchEvent에 대한 메모 1. OnInterceptEvent는 OnTouchEvent에서 이뤄질 행동을 결정하는 단계이다. 더보기
[android] Behavior 다 이해하고 작정하고 적는것이 아니고, 적어가면서 가다듬는 용임 Android design support library와 함께 등장한 BehaviorCoordinatorLayout이 등장하면서 Scroll을 제어하기 위해 제시한 방법이다. Design Support Library( 링크 ) 를 소개할때 보이는 AppBarLayout을 감싸서 스크롤을 제어하는 모습을 볼 수 있다. 그때까지는 아마 이러한 형태의 View를 구현하려면 가장 먼저 떠올리는것이 아마 ParallaxView( 링크 )가 아니었나싶다. (이제는 모두가 CoordinatorLayout을 떠올린다.) 그런데 CoordinatorLayout을 써본 사람이라면 fling시 누구나 이런 말을 했을것이다. 100%"이거 아닌데..." 관련 동.. 더보기
[Android View] 달력만들기 CalendarView 처음에 달력을 만들때는 아주 간단하게 생각했다. 달력 - 날짜 - 정방형 - 많다 - GridView - 다음달 - ViewPager - 만세 그리고 아주 간단한 문제를 아주 복잡하게 구현했다.기본적인 기능들을 넣다보니 참으로 덕지덕지 바른 형태의 달력이 탄생했다. 구조를 대략적으로 적어보면Acitivity - ViewPager FragmentStatePagerAdapter - Fragment - GridView Adapter- View 대충 감이 올것 같은데.. ViewPager의 각 Item으로 달을 표시했고, 달에 포함된 날짜를 GridView로 구현을 했다.참 쉽게 했다. 그런데 문제는 느리다.초기화 속도가 1초에서 길게는 2초까지 갔다. 영 마음에 안들었다. 사용자는 빨리.. 더보기
[android] 인상적인 View - ContextMenu https://github.com/Yalantis/Context-Menu.Android 더보기
[android] attr/actionbarSize android.R.attr.actionBarSize 와 R.attr.actionBarSize는 다르다. AppCompat-v7 은 actionBarSize는 56dp로 R.attr.actionBarSize를 참조해야 한다. android.R.attr.actionBarSize는 플랫폼에서 정의하고 있는 값으로 48dp의 값을 가진다. 참고 주소http://stackoverflow.com/questions/26449195/new-theme-appcompat-actionbar-height 더보기
[android] 4.4 webview 파일 첨부 openFileChooser가 킷캣(os ver 4.4) 에서 변동이 생겨 킷캣 이상에서 webview가 이 함수를 호출하지 못한다. 롤리팝에서는 openFileChooser가 Deprecated 되고 onShowFileChooser라는 것이 추가됨 더보기