본문 바로가기

Programming

[Android] How To APK Install Programmatically How To APK Install Programmatically targetSdkVersion을 24이상부터 file 접근하는 방법이 변경됨[Android 7.0 변경사항 참고 : https://developer.android.com/about/versions/nougat/android-7.0-changes?hl=ko] [Code] AndroidManifest.xml 12345678910111213141516171819202122... ... ... res/xml/file_provider.xml 123456 [Function] install 12345678910111213141516171819private void install(Context context) { Observable installApk =.. 더보기
[Android] Input Event 이벤트 리스너(EventListener) void onClick( ) From View.OnClickListener 사용자가 항목을 터치하거나, navigation key 또는 트랙볼을 사용하여 해당 항목에 포커스를 맞추고 ‘Enter’키를 누르거나 트랙볼을 클릭하면 호출 1. 변수로 리스너 등록 // Create an anonymous implementation of OnClickListener private OnClickListener mCorkyListener = new OnClickListener() { public void onClick(View v) { // do something when the button is clicked } }; protected void onCreate(Bundle .. 더보기
[Android] View View Android의 UI는 ViewGroup과 View의 계층으로 이루어짐 출처 : Good Joon :: 안드로이드 개발 #4 - 첫 UI 개발 View란? Activity에서 화면을 구성하는 최소 단위(Widget들의 기본 Class) 로 화면에 보이는 모든 것 View를 상속하는 Class 예 : TextView ImageView, EditText, Button 등 ViewGruop n개의 View를 담을 수 있는 Container로 ViewGroup 또한 View를 상속받아 만든 Class입니다. ViewGroup를 상속하는 Class 예 : TextView ImageView, EditText, Button 등 출처: Android UI Layouts Tutorial View LifeCycl.. 더보기
[Android] java.lang.IllegalMonitorStateException: object not locked by thread before notify() [Android] java.lang.IllegalMonitorStateException: object not locked by thread before notify()Problem: lock을 걸지 않았을 때 발생하는 에러(wait도 마찬가지로 발생) java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.foodfly.viewtest/kr.co.foodfly.viewtest.BlogActivity}: java.lang.IllegalMonitorStateException: object not locked by thread before notify() at android.app.ActivityThread.performLaunchAc.. 더보기
[Android] Dependency Structure [Android] dependency 구조 보기Requireapk-dependency-graph(https://github.com/alexzaitsev/apk-dependency-graph)apk fileant 1.9.9 or newerat least Java 5 Intstall & Run (For Mac) hyogeun.park@xxxxxxxxxxxxx:~$ xcode-select --installhyogeun.park@xxxxxxxxxxxxx:~$ brew updatehyogeun.park@xxxxxxxxxxxxx:~$ brew install ant// move apk-dependency-graph directoryhyogeun.park@xxxxxxxxxxxxx:~$ anthyogeun.park@xx.. 더보기
[Android] android.content.ActivityNotFoundException [Android] android.content.ActivityNotFoundExceptionProblem : AndroidManifest.xml에 Activity 항목을 추가를 안해서 에러가 발생 android.content.ActivityNotFoundException: Unable to find explicit activity class {kr.co.xxxx .viewtest/kr.co.xxxx.viewtest.BlogActivity}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1820) at an.. 더보기
[Android] View Collapse & Expand Animation Collpase & Expand AnimationCollpase/Expand UI를 만들 때, Animation을 주는 방법TransitionManager를 이용하면 간단하게 만들 수 있다! TransitionManager.beginDelayedTransition(ViewGroup, Transition) // ViewGroup은 root view를 넣어주면 된다.Transition의 종류Android 5.0(API 레벨 21) 이하에서 사용할 경우AutoTransition() : Android가 자동으로 Animation을 설정ChangeBound() : Collpase/Expand AnimationAndroid 5.0(API 레벨 21) 이상일 경우(위 2개 포함)는 아래 주소 참조 https://de.. 더보기
[Android] ViewPager & Fragment ViewPager & Fragment.md ViewPager & Fragment Fragment를 사용하는 것 중에 하나가 ViewPager와 같이 사용하는 것이다.(보통 TabLayout과 같이 사용하는데 이번에는 TabLayout는 다루지 않는다.)기본 예제(Basic)activity_basic.xml ​ fragment_basic.xml ​ BasicActivity public class BasicActivity extends FragmentActivity {​ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a.. 더보기
[Android] Debug & Release 동시에 두개 설치하기 Debug와 Release 두 개로 설치하기1. Introductionpackage name을 다르게하면 debug와 release를 동시에 설치할 수 있다. 2. package name에 'debug' 추가하기• build.gradle(app)... ​ buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { applicationIdSuffix ".debug" // 이 부분을 추가하면 release와 별개로 debug 앱이 설치된다. } } ... 3. App name 변경하기strings.xml에 있는 app_name.. 더보기
[Android] Handler & Looper [Handler & Looper] android.os.Looper오직 한개만 있는 메시지 발송자 android.os.Message데이터나 태스크 두가지 중 하나만 옮기는 컨테이너 객체 데이터 메시지 태스크 메시지 여러 개의 매개변수를 담는 메시지(what, [arg1, arg2], obj, data, replyTo, callback) java.lang.Runnable만 포함하고 데이터는 포함하지 않는다. android.os.MessageQueue처리할 메시지들이 담긴 무제한의 연결 리스트. 모든 루퍼와 스레드는 최대 하나의 메시지 큐를 가짐. android.os.Handler큐에 메시지를 삽입 & 메시지 처리 >> 관계도 출처 : Efficient Android Threading(출판사 : 한빛미디어) 더보기