Android
-
[Android] Robelctric TestλAndroid 2021. 2. 17. 09:35
Android Test μ°Έμ‘°(https://meetup.toast.com/posts/187) Local Unit Test ν μ€νΈ μ€ν μκ°μ μ΅μννκΈ° μν΄ μ¬μ©νλ ν μ€νΈμΈ μ λ ν μ€νΈλ JVMμμ μ€νλ©λλ€. Unit Testλ₯Ό μννκΈ° μν΄μλ module-name/src/test/java ν΄λμ ν μ€νΈ μ½λλ₯Ό μμ±ν΄μΌ ν©λλ€. μλλ‘μ΄λ νλ μμν¬ μ’ μμ±μ΄ μλ ν μ€νΈ μ½λμ μ£Όλ‘ μ¬μ©λ©λλ€. λ§μ½ Android μ»΄ν¬λνΈλ€μ Unit Test μ½λμ μ¬μ©νκ² λλ©΄ ν μ€νΈλ μ€ν¨ν©λλ€. Unit Testμμ μ¬μ©νλ μλλ‘μ΄λ μ»΄ν¬λνΈλ€μ android-stubs-src.jar νμΌμ μ°Έμ‘°νλλ° μ€μ μ΄ νμΌλ€μ λΉ κ»λ°κΈ°λ€λ§ λͺ¨μ¬ μμ΄ μ€νλ μ μμ΅λλ€. μ΄λ‘ μΈν΄ Instrumentation ..
-
[Android] Unit Test, JUnit4Android 2021. 2. 16. 23:52
Unit Test Unit Testλ λ§ κ·Έλλ λ¨μ ν μ€νΈλ‘, Test Driven Developmentλ‘ κ°λ°νκ² λλ©΄ κΈ°λ₯ λ¨μλ³λ‘ ν μ€νΈ μ½λλ₯Ό ꡬμ±ν΄μΌ ν©λλ€. λνμ μΈ Unit Test Toolλ‘ JUnitμ΄ μμΌλ©°, μλ° νλ‘κ·Έλλ°μ© λ¨μν μ€νΈ νλ μμν¬μ λλ€. μ£Όλ‘ μλλ‘μ΄λ νλ μμν¬μμ dependencyκ° μλ ν μ€νΈ μ½λμ μ¬μ©λλ©°, λ‘컬 JVMμμ μ€νλ©λλ€. λ§μ½, μλλ‘μ΄λ νλ μμν¬μμ 볡μ‘ν μνΈμμ©μ νλ dependecnyκ° μλ€λ©° Robolectric μ μ¬μ©νλ κ²μ΄ μ’κ³ , ν μ€νΈμ μ΅μνμ μλλ‘μ΄λ νλ‘μ νΈμ dependencyλΌλ©΄ Mockitoμ κ°μ λͺ¨μ νλ μμν¬λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. Gradle μ€μ Unit Testμ μμ€ νμΌμ module-nam..
-
[Java] Enumμ΄λ?Android/Java 2021. 2. 14. 18:43
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ 곡λΆνμ¬ μμ±ν κΈμ λλ€. μμμ νν κΈ°μ‘΄μ μμλ₯Ό ννν λλ ν΄λΉ ν΄λμ€ λ΄λΆμ final static String, final static intμ κ°μ΄ μ μλ₯Ό νμμ΅λλ€. μ΄μ²λΌ μ μνλ λ°©μμ μμκ° λ§μμ§ κ²½μ° κ°λ μ±μ΄ λ¨μ΄μ§κ³ , μ΄λ€ κ²μ κ΄ν μμμΈμ§ νμ νκΈ°κ° μ΄λ ΅μ΅λλ€. κ·Έλμ μλ‘μ΄ μμ ν΄λμ€ λλ μμ μΈν°νμ΄μ€λ₯Ό λ§λ€μ΄μ μ μλ₯Ό νμ§λ§ μ΄ μμλ μ¬λ¬κ°μ§ λΆνΈν¨μ΄ μ‘΄μ¬νμμ΅λλ€. interface UNIVERSITY{ int SEOUL = 1; int YONSEI = 2; int KOREA = 3; } interface MAJOR{ int KOREAN = 1; int MATH = 2; int ENGLISH = 3; int SCIENCE =..
-
[Android] μλλ‘μ΄λ μ€νλμ€ NDK μ¬μ©λ²Android 2021. 2. 12. 07:41
NDKλ? μλλ‘μ΄λ μ€νλμ€μμ λ°μ΄νΈ μ½λκ° μλ λ€μ΄ν°λΈ μ½λ(C/C++)λ₯Ό μ¬μ©ν΄μΌ ν λκ° μμ΅λλ€. μλ° μ΄μΈμ λ€μ΄ν°λΈ μ½λ(C/C++)μ μ¬μ©νκΈ° μν΄μλ JNI(Java Native Interface)λΌλ μΈν°νμ΄μ€κ° μμ΄μΌ ν©λλ€. NDK(Native Development Kit)λ μλλ‘μ΄λ νκ²½μμ JNIλ₯Ό μ¬μ©νκΈ° μν΄ κ΅¬μ±λ ν€νΈμ λλ€. NDK μ€μΉ μλλ‘μ΄λ μ€νλμ€ μλ¨λ°μ Tools -> SDK Managerλ₯Ό ν΄λ¦ν©λλ€. μ΄ν Android SDKμ SDK Toolsμμ NDKλ₯Ό μ€μΉν μ μμ΅λλ€. Show Package Detailμ λλ¬ μμΈν λ²μ μ NDKλ μ€μΉκ°λ₯ν©λλ€. NDK μμΉ μ€μ μλλ‘μ΄λ μλ¨λ°μ File -> Project Structureλ₯Ό ν΄λ¦ν©..
-
[Java] μλ° μ°λ λ κ΅μ°©μν(deadlock)Android/Java 2021. 2. 7. 17:01
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ κ°μ§κ³ 곡λΆνμ¬ μμ±ν κΈμ λλ€. Thread DeadLock μ΄λ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°νλ₯Ό ν΅ν΄ λ½μ νλνμ¬ λμΌν μμμ μ¬λ¬ κ³³μμ ν¨λΆλ‘ μ¬μ©νμ§ λͺ»νλλ‘ νμμ΅λλ€. νμ§λ§ λ κ°μ μ°λ λμμ μλ‘κ° κ°μ§κ³ μλ λ½μ΄ ν΄μ λκΈ°λ₯Ό κΈ°λ€λ¦¬λ μνκ° μκΈΈ μ μμΌλ©° μ΄λ¬ν μνλ₯Ό κ΅μ°©μν(deadlock) μ΄λΌκ³ ν©λλ€. κ΅μ°©μνκ° λλ©΄ μ΄λ€ μμ λ μ€νλμ§ λͺ»νκ³ μλ‘ μλλ°©μ μμ μ΄ λλκΈ°λ§ λ°λΌλ 무νμ λκΈ° μνμ λλ€. DeakLock λ°μ 쑰건 μνΈ λ°°μ (Mutual Exclusion) : ν μμμ λν΄ μ¬λ¬ μ°λ λ λμ μ κ·Ό λΆκ° μ μ μ λκΈ° (Hold and Wait) : μμμ κ°μ§κ³ μλ μνμμ λ€λ₯Έ μ°λ λκ° μ¬μ©νκ³ μλ μ..
-
[Java] μλ° μ°λ λμ λκΈ°νAndroid 2021. 2. 7. 16:57
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆνμ¬ μμ±ν κΈμ λλ€. μ°λ λ λκΈ°νλ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°ν μμ μ΄ νμμ λλ€. μ°λ λ λκΈ°νλ μ¬λ¬ μ°λ λκ° λμΌν 리μμ€λ₯Ό 곡μ νμ¬ μ¬μ©νκ² λλ©΄ μλ‘μ κ²°κ³Όμ μν₯μ μ£ΌκΈ° λλ¬Έμ λ°©μ§νλ κΈ°λ²μ λλ€. μ°λ λ λκΈ°νλ₯Ό νκΈ° μν΄μλ μκ³μμ(critical section)κ³Ό λ½(lock)μ μ¬μ©ν©λλ€. μκ³μμμΌλ‘ μ€μ ν ꡬμμ λμμ 리μμ€λ₯Ό μ¬μ©ν μ μλ ꡬμμ΄κ³ , λ½μ νλν μ°λ λμ λν΄μλ§ λ¦¬μμ€λ₯Ό μ¬μ©νλλ‘ νλ λ°©μμ λλ€. synchronizedλ₯Ό μ΄μ©ν λκΈ°ν μλ°μμλ synchronized ν€μλλ₯Ό μ¬μ©νμ¬ μκ³μμμ μ§μ νμ¬ λμμ 곡μ μμμ μ°¨μ§νμ§ μλλ‘ κ°μ ν©λλ€. synchronizedλ₯Ό μ¬μ©νλ λ°©λ²μ λ©μλ μ체μ μ μ©..
-
[Java] μλ° μ°λ λ μν, μ°μ μμ(State, Priority)Android/Java 2021. 2. 5. 02:19
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" μ μ°Έμ¬νμ¬ κ³΅λΆν κΈμ λλ€. λ©ν° μ°λ λ λ©ν° μ°λ λ νλ‘κ·Έλλ°μ΄λ νλμ μμ©νλ‘κ·Έλ¨μμ λμμ μ¬λ¬ μ²λ¦¬λ₯Ό νκΈ° μν΄ μ°λ λλ₯Ό μμ±νμ¬ μ΄μνλ νλ‘κ·Έλλ°μ λ§ν©λλ€. λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νΉμ§μ λμμ±κ³Ό λ³λ ¬μ±μ΄ μ‘΄μ¬ν©λλ€. νλμ μ½μ΄μμ μ¬λ¬ κ°μ μ°λ λλ₯Ό μ΄μνλ κ²μ λμμ±μΌλ‘ λΉ λ₯Έ μλλ‘ μ°λ λλ₯Ό λ²κ°μ κ°λ©΄μ μ€ννλ κ²μ λλ€. λ³λ ¬μ±μ λ€μμ μ½μ΄μμ κ° μ½μ΄μ μ°λ λλ₯Ό μμ±νμ¬ μ€νμν€λ κ²μ λλ€. μλ° μ°λ λ μν (Thread State) μλ° λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νλ©΄ λκΈ°ν/λΉλκΈ°ν λΏλ§ μλλΌ μ°λ λ μνλ₯Ό μ§μ μ μ΄ν κ²½μ°λ μκΉλλ€. μ°λ λ μ μ΄νκΈ° μ μ μ°λ λμ μνλ‘ μμμΌ νλλ° getState() λ©μλλ₯Ό ν΅ν΄ μ μ μμ΅λ..
-
[Java] μλ° μ°λ λ μμ±(Thread, Runnable)Android/Java 2021. 2. 2. 14:52
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆν λ΄μ©μ μ 리νμ¬ μ΄ κΈμ λλ€. Process vs Thread μλ°μ μ°λ λλ₯Ό μ€λͺ νκΈ° μ΄μ μ νλ‘μΈμ€μ μ°λ λμ μ°¨μ΄μ λν΄ κ°λ΅νκ²λλ§ μ νμκ° μμ΅λλ€. Process νλ‘μΈμ€μ μ¬μ μ μ μλ‘λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ»νκ² λ©λλ€. μλμ°μμ μ μ₯μ₯μΉμ μ μ₯λ μνλ₯Ό νλ‘κ·Έλ¨μ΄λΌκ³ νκ³ λλΈν΄λ¦μ ν΅ν΄ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌμ μ€νμ€μΈ νλ‘κ·Έλ¨ μΈμ€ν΄μ€λ₯Ό νλ‘μΈμ€λΌκ³ ν©λλ€. Thread ν νλ‘μΈμ€ λ΄μμ λμλλ μ€νλ¨μλ₯Ό λ»νκ² λ©λλ€. ν¬λ‘¬ λΈλΌμ°μ λΌλ νλ‘μΈμ€μμ μ νλΈμ μ μνμ¬ λμμμ μμ²ν λ μ νλΈ λ°μ΄ν°λ₯Ό λ€μ΄λ‘λ λ°μΌλ©΄μ λμμμ΄ μ€νλλ μμ μ΄ λμμ μ΄λ£¨μ΄μ§λ κ²λ μ°λ λλ₯Ό ν΅ν΄ κ°λ₯νκ² λ©λλ€. Thread μμ± μλ°μμ T..