Android
-
Android Studio Layout InspectorAndroid 2019. 12. 5. 11:07
android studio 3.1 부터 새롭게 추가된 layout debuging 을 위한 tool 입니다. 앱 레이아웃을 디자인 모형과 비교하고, 앱의 확대 뷰를 표시하고, 런타임에 앱 레이아웃의 세부정보를 검토할 수 있습니다. 사용법은 아래와 같습니다. 상단 Tools -> Layout Inspector 를 선택합니다. Layout Inspector 를 실행시 실행중인 Process 를 선택하는 창이 뜹니다. 자신이 보고자 하는 Process 를 선택하고 OK 버튼을 누릅니다. 현재 실행중인 앱의 화면 이 표시되며 ViewTree 에서 구조를 볼 수있습니다. ViewTree 에서 원하는 View 을 선택시 Properties Table 에서 해당 View의 상세한 정보를 볼 수 있습니다. captur..
-
Android Decompile SettingAndroid 2019. 11. 28. 22:37
mac 환경을 기준으로 작성합니다. https://github.com/pxb1988/dex2jar pxb1988/dex2jar Tools to work with android .dex and java .class files - pxb1988/dex2jar github.com dex2jar-2.0.zip 이라는 파일을 다운로드 받습니다. 압축을 해제하면 아래와 같이 여러 실행파일이 있습니다. 이 중에서 d2j-dex2jar.sh을 사용합니다. sudo sh d2j-dex2jar.sh {dex 파일 또는 apk파일 경로} ex) sudo sh d2j-dex2jar.sh ./app-release.apk 혹시 아래와 같이 메시지가 발생할 경우 d2j-dex2jar.sh: line 36: ./d2j_invoke...
-
Could not create service of type FileHasher using GradleUserHomeScopeServices.createCachingFileHasher(). 발생시Android/Error 2019. 11. 18. 10:46
Could not create service of type FileHasher using GradleUserHomeScopeServices.createCachingFileHasher(). 와 같은 메시지가 발생한경우 gradle 빌드중 ps가 lock이 걸린 상태가 된 경우 이다. ps aux | grep gradle 위와 같이 터미널에 명령어를 입력하여 ps 에서 gradle 이 작동중인지 확인후 kill -9 위의 명령어를 입력하여 해당 ps를 강제로 종료시킵니다. 그뒤 다시 빌드를 진행하면 정상적으로 진행이 됩니다. https://stackoverflow.com/questions/45177977/gradle-could-not-create-service-of-type-filehasher/4609480..
-
Declarative UI PatternsAndroid 2019. 10. 26. 23:44
https://developer.android.com/jetpack/compose Jetpack Compose | Android 개발자 | Android Developers UI 빌드를 위한 선언적 도구 Jetpack Compose는 UI 개발을 단순화하도록 설계된 번들되지 않은 도구입니다. 반응형 프로그래밍 모델을 Kotlin 프로그래밍 언어의 간결함 및 사용 편의성과 결합합니다. 참고: Jetpack Compose는 현재 알파 이전의 초기 탐구 단계에 있습니다. API 표면은 아직 확정되지 않았으므로 프로덕션용으로 사용하면 안 됩니다. 핵심 원칙 간결하고 직관적인 Kotlin 자바와 완벽하게 호환되며 간결하고 안전한 Ko developer.android.com https://www.youtube.co..
-
SubscribeOn 와 ObserveOn 그리고 SchedulersAndroid/Rx 2019. 10. 7. 00:03
SubscribeOn SubscribeOn은 구독(subscribe)에서 사용할 스레드를 지정 도중 ObserveOn이 호출되어도 SubscribeOn의 스레드 지정에는 영향을 끼치지 않는다. ObserveOn ObserveOn은 Observable이 다음처리를 진행할때 사용할 스레드를 지정 ObserveOn이 선언된 후 처리가 진행뒤 다른 ObserveOn이 선언시 다른 ObserveOn에서 선언한 스레드로 변경되어 이후 처리를 진행한다. Schedulers Observable 연산자 체인에 멀티스레딩을 적용하고 싶다면, 특정 스케줄러를 사용해서 연산자(또는 특정 Observable)를 실행하면 된다. ReactiveX의 일부 Observable 연산자는 사용할 스케줄러를 파라미터로 전달 받기도 하는데..
-
안드로이드 비동기 처리 질문 (Thread Sleep)Android 2019. 10. 6. 00:03
안드로이드에서 아래와 같은 코드를 동작시 어떻게 작동할것 같냐고 질문을 받았다 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) for(i in 0..10){ tv_main.text = "cur $i" SystemClock.sleep(1000) } } } 내 대답은 0부터 10까지 1초단위로 textView가 출력 될 것 같다 하지만 나중에 직접 돌려본 결과는 내 대답과는 달랐습니다. 해당시간 동안 아무것도 뜨지 않고 for문이 종료된 이후에서 화면이 표..
-
Android Paging LibraryAndroid 2019. 10. 1. 21:58
https://github.com/DNights/RestAPISample DNights/RestAPISample Contribute to DNights/RestAPISample development by creating an account on GitHub. github.com 페이징 라이브러리를 사용한 샘플코드 [참고자료] https://developer.android.com/topic/libraries/architecture/paging Paging library overview | Android Developers Paging library overview Part of Android Jetpack. The Paging Library helps you load and display small chu..
-
Android Dokka 사용법Android 2019. 9. 23. 15:44
https://github.com/DNights/DokkaSample DNights/DokkaSample Contribute to DNights/DokkaSample development by creating an account on GitHub. github.com 프로젝트의 코드를 분석하여 javadoc 형태의 문서를 만들어주는 Dokka 플러그인 사용 법이다. 일단 참고링크에 있는 내용을 읽어보실것을 추천드립니다. 일단 app 단에 있는 build.gradle 에 apply plugin: 'org.jetbrains.dokka-android' 를 추가합니다. 그리고 dokka 부분을 추가합니다. dokka { outputFormat = 'html' outputDirectory = "$rootDir/j..
-
RecyclerView Header , Footer 생성Android 2019. 9. 17. 16:22
https://github.com/DNights/RestAPISample DNights/RestAPISample Contribute to DNights/RestAPISample development by creating an account on GitHub. github.com 이전에 제작했던 RestAPISample 코드의 RecyclerView 에 Header 와 Footer 를 추가해보았다. RecyclerHeader/Footer 라는 Branch로 push 하였습니다. [원본 코드] class RecyclerAdapter: RecyclerView.Adapter() { private var itemsList = ArrayList() override fun onCreateViewHolder(paren..
-
ReactiveX - SubjectAndroid/Rx 2019. 9. 4. 11:33
https://github.com/DNights/rxSubjectSample DNights/rxSubjectSample Contribute to DNights/rxSubjectSample development by creating an account on GitHub. github.com RxSubject 에 관한 내용을 정리하였습니다. RxSubject는 아래 4가지 종류가 있습니다. AysncSubject BehaviorSubject PublishSubject ReplaySubject AysncSubject는 구독이 끝나고 가장 마지막값을 전달합니다. fun runOnNextWithAsyncSubject(){ for (i in 0..100){ asyncSubject.onNext("asyncSubjec..