JNI (Java Native Interface)JNI ?Why JNI ?장/단점ReferencesJNI ?자바코드가 자바 VM 에서 동작할 때, 네이티브 언어로 작성된 코드를 자바에서 사용하거나, 네이티브 언어에서 자바의 클래스와 메소드를 사용할 수 있게 해주는 프로그래밍 인터페이스이다.네이티브원시 코드라는 의미로 C/C++ 또는 어셈블리어 이다.쉽게 말해 Java 와 다른 언어를 연동하는 솔루션이다.Java Side 는 SDK 로 개발할 어플리케이션 계층이며, C Side 는 NDK 를 이용하여 컴파일 할 라이브러리 계층이라고 보면된다.OpenCV 나 OpenGL 등의 라이브러리 등을 사용할 때 주로 사용된다.OpenCVComputer Vision Library, 영상처리 라이브러리이다. 컴퓨터가 알..
Hide FAB on scroll(Recyclerview에서 스크롤시 FloatingActionButton 숨기기) fdRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { if (dy 0) { fdFab.hide(); } } });
This Handler class should be static or leaks might occur 안드로이드에서 Handler 오브젝트는 모든 스레드 반복문에서 참조하는데 어느 한 곳에 종속되면 안되기 때문이다. 그렇게 되면 GC가 되지 않아 Memory Leak이 계속해서 발생하게 되는 것이다 이전 소스 123456Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); }};Colored by Color Scriptercs Handler를 상속받은 클래스를 하나 만들어 static 등록 123456789101112131415private final MyHand..
Android Developer notifyDataSetChangedadded in API level 1void notifyDataSetChanged ()Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself. Adapter Android APIs' Reference에 따르면'Adapter' 자체는 하나의 Object로서, 보여지는 View와 그 View에 올릴Data를 연결하는 일종의 Bridge라고 한다 +내가 이해하기론list.setAdatper(adapter);를 통해 Activity와 Adapter를 연결해 주기 때..
[Android] EditText 입력 변화 이벤트 addTextChangedListener EditText에 사용자가 텍스트를 입력할 때 사용 입력되는 텍스트에 변화가 있을 때마다 리스너 이벤트가 작동한다 12345678910111213141516171819202122232425editText.addTextChangedListener(new TextWatcher() { /** * @param CharSequence s 현재 에디트 텍스트에 입력된 문자열을 담고 있다 * @param int start s에 저장된 문자열 내에 새로 추가될 문자열의 위치값 * @param count s에 담긴 문자열 가운데 새로 사용자가 입력할 문자열에 의해 변경될 문자열의 수 * @param int after 새로 추가될..
RecyclerView getPosition() 새로운 지원 라이브러리 버전 (22.x)부터 RecyclerView.ViewHolder 클래스의 getPostion()이 deprecated 되었고 getLayoutPosition, getAdapterPosition 메소드가 추가되었다 그러나 getAdapterPosition 이 -1 을 반환할 때가 있다RecyclerView.NO_POSITION 인지를 꼭 확인토록 하자 1if(getAdapterPosition() != RecyclerView.NO_POSITION)cs +onCreateViewHolder 에서는 새로운 인스턴스만 반환하자(항상 new Holder()를 반환토록) getAdapterPosition vs getLayoutPosition 둘 중..
안드로이드 개발 문서 https://developer.android.com/reference/java/net/HttpURLConnection.html 기본 검색 폼 URL url = new URL("http://www.android.com/");HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();try{InputStream in = new BufferedInputStream(urlConnection.getInputStream());readStream(in);}finally{urlConnection.disconnect();} + 많은 양의 데이터를 서버와 주고 받을 때 스트림을 사용하여 한 번에 많은 데이터가 메모리에 존재 ..