Android 에뮬레이터 실행시 

Emulator: Process finished with exit code -1073741819 (0xC0000005)

라는 에러로 실행이 되지 않는 경우 

avd config 파일에서 hw.gpu.mode = off

출처 : https://stackoverflow.com/a/51740954

새로나온 룸 에서는 리스트형태가 저장이 안된다.


그래서 json string으로 변환 후에 저장했다가 꺼낼때에 다시 변환해야 합니다. 


https://stackoverflow.com/questions/44986626/android-room-database-how-to-handle-arraylist-in-an-entity

task deleteBuild(type: Delete) {
delete 'build/generated/'
delete project(':mobile-ui').file('build/')
delete project(':domain').file('build/')
delete project(':cache').file('build/')
delete project(':presentation').file('build/')
delete project(':data').file('build/')
delete project(':remote').file('build/')
}


mobile-ui -> app 모듈로 변경..

MIME-TypeDescriptionFile Extension
application/acadAutoCAD drawing filesdwg
application/clariscadClarisCAD filesccad
application/dxfDXF (AutoCAD)dxf
application/msaccessMicrosoft Access filemdb
application/mswordMicrosoft Word filedoc
application/octet-streamUninterpreted binarybin
application/pdfPDF (Adobe Acrobat)pdf
application/postscriptPostscript, encapsulated Postscript,ai, ps, eps
Adobe Illustrator
application/rtfRich Text Format filertf rtf
application/vnd.ms-excelMicrosoft Excel filexls
application/vnd.ms-powerpointMicrosoft PowerPoint fileppt
application/x-cdfChannel Definition Format filecdf
application/x-cshC-shell scriptcsh csh
application/x-dviTeXdvi dvi dvi
application/x-javascriptJavascript source filejs
application/x-latexLaTeX source filelatex
application/x-mifFrameMaker MIF formatmif
application/x-msexcelMicrosoft Excel filexls
application/x-mspowerpointMicrosoft PowerPoint fileppt
application/x-tclTCL scripttcl
application/x-texTeX source filetex
application/x-texinfoTexinfo (emacs)texinfo, texi
application/x-trofftroff filet, tr, roff t, tr, roff
application/x-troff-mantroff with MAN macrosman
application/x-troff-metroff with ME macrosme
application/x-troff-mstroff with MS macrosms
application/x-wais-sourceWAIS source filesrc
application/zipZIP archivezip
audio/basicBasic audio (usually m-law)au, snd
audio/x-aiffAIFF audioaif, aiff, aifc
audio/x-wavWindows WAVE audiowav
image/gifGIF imagegif
image/iefImage Exchange Format fileief
image/jpegJPEG imagejpeg, jpg jpe
image/tiffTIFF imagetiff, tif
image/x-cmu-rasterCMU Raster imageras
image/x-portable-anymapPBM Anymap image formatpnm
image/x-portable-bitmapPBM Bitmap image formatpbm
image/x-portable-graymapPBM Graymap image formatpgm
image/x-portable-pixmapPBM Pixmap image formatppm
image/x-rgbRGB image formatrgb
image/x-xbitmapX Bitmap imagexbm
image/x-xpixmapX Pixmap imagexpm
image/x-xwindowdumpX Windows Dump (xwd)xwd
multipart/x-gzipGNU ZIP archivegzip
multipart/x-zipPKZIP archivezip
text/cssCascading style sheetcss
text/htmlHTML filehtml, htm
text/plainPlain texttxt
text/richtextMIME Rich Textrtx
text/tab-separated- valuesText with tab-separated valuestsv
text/xmlXML documentxml
text/x-setextStruct-Enhanced textetx
text/xslXSL style sheetxsl
video/mpegMPEG videompeg, mpg, mpe
video/quicktimeQuickTime videoqt, mov
video/x-msvideoMicrosoft Windows videoavi
video/x-sgi-movieSGI movie player formatmovie


MIME 확장명

파일 확장명

application/x-silverlight-app.xap
application/manifest.manifest
application/x-ms-application.application
application/x-ms-xbap.xbap
application/octet-stream.deploy
application/vnd.ms-xpsdocument.xps
application/xaml+xml.xaml
application/vnd.ms-cab-compressed.cab
application/vnd.openxmlformats-officedocument.wordprocessingml.document.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document.docm
application/vnd.openxmlformats-officedocument.presentationml.presentation.pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation.pptm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsm
application/msaccess.accdb
application/x-mspublisher.pub
image/svg+xml.svg
application/xhtml+xml.xht
application/xhtml+xml.xhtml



출처: http://devbible.tistory.com/160 [devbible]

task copyTestClasses(type: Copy) {
from "build/tmp/kotlin-classes/debugUnitTest"
into "build/intermediates/classes/debug"
}

task copySdkClasses(type: Copy) {
from "build/tmp/kotlin-classes/debug"
into "build/intermediates/classes/debug"
}


추가 후에 Run 설정에서 defaults 에서 junit 과 Instrumented test 에 2개를 추가해준다. 



출처 : http://thinkerodeng.tistory.com/227


1. Android Studio는 Intellij 기반이다. 


2. 클래스와 자동 주석을 달기 위해서 /**  을 사용하면 자동으로 뭔가 정보가 입력되었으면 좋겠는데, 그게 안된다. 

  (클래스 주석 그리고 메소드 주석 수정/추가 기능이 안된다)


3. 다른 방법을 찾아보니 Live Templates 라는 기능이 있었다. 

   나름 찾은 방법이니 정답은 아니다.


4. File -> Settings  이동





5. Editor -> Live Templates -> AndroidComments 선택 후 -> + 버튼 클릭 -> 1.Live Template 클릭





6. <abbreviation> 으로 포커스가 잡힌다.





7. 정보를 입력한다. 필자의 경우는


Abbreviation : classComment

Description : 클래스 주석

Template Text :

/**
* $Text$
* @author 임성진
* @version 1.0.0
* @since $date$ $time$
**/





8. 하단에 Change 클릭 -> Java 체크




9. (1) 오른쪽 중단 쯤에 Edit variables 에 들어간다.

   (2) Expression에 date(), time() 입력 후 엔터(엔터를 처야지 적용된다)

   (3) Skip it defined 체크 (이걸 체크해야지 date, time 함수가 적용된다)






10, 이제 코드 입력창에서 Ctrl + j 를 누른다. 그러면 아래화면처럼 나오는데, classComment 를 찾아서 엔터




11. 빨간 네모안에 텍스트 입력하라고 포커스가 잡힐 것이다. 

     내용 입력 후 엔터를 치면 완성








출처: http://thinkerodeng.tistory.com/227 [Thinker]

출처: http://thinkerodeng.tistory.com/227 [Thinker]

요 며칠 Firestore 관련해서 삽질을 많이 했다. 느낀 점을 정리해본다. 


1. 읽고 , 쓰기 속도는 좀 걸린다. 

- 최소 1~2초정도 걸린다. 이점을 고려해서 설계를 해야 할것 이다. 


2. 모델링시 방법이 많은데 대략 3가지를 소개하고 있다. 

https://firebase.google.com/docs/firestore/manage-data/structure-data?hl=ko

문서의 중첩 데이터

문서 내에 배열(맵) 등의 복합 개체를 중첩할 수 있습니다.

  • 장점: 문서 안에 단순한 고정 데이터 목록을 보관하려는 경우 데이터 구조를 손쉽게 설정하고 간소화할 수 있습니다.
  • 한계: 중첩 목록에 대해 쿼리를 실행할 수 없습니다. 또한 시간에 따라 데이터가 증가하는 경우 다른 옵션보다 확장성이 부족합니다. 목록이 커지면 문서도 커지므로 문서 검색 속도가 느려질 수 있습니다.
  • 가능한 사용 사례: 예를 들어 채팅 앱에서 사용자가 가장 최근에 입장한 대화방 3개를 프로필에 중첩 목록으로 저장할 수 있습니다.
  • class alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

하위 컬렉션

데이터가 시간에 따라 증가할 가능성이 있다면 문서 내에 컬렉션을 만들 수 있습니다.

  • 장점: 목록이 커져도 상위 문서의 크기는 그대로입니다. 또한 하위 컬렉션에 대해 모든 쿼리 기능을 사용할 수 있습니다.
  • 한계: 하위 컬렉션을 삭제하거나 여러 하위 컬렉션을 대상으로 복잡한 쿼리를 수행하기가 어렵습니다.
  • 가능한 사용 사례: 동일한 채팅 앱에서 채팅방 문서 안에 사용자 또는 메시지의 컬렉션을 만들 수 있습니다.
  • collections_bookmark science
    • class software
        name : "software chat"
      • collections_bookmark users
        • class alovelace
              first : "Ada"
              last : "Lovelace"
        • class sride
              first : "Sally"
              last : "Ride"`


    • class astrophysics
      • ...

루트 수준 컬렉션

데이터베이스 루트 수준에 컬렉션을 만들어 상이한 데이터 세트를 정리합니다.

  • 장점: 루트 수준 컬렉션은 최대한의 유연성과 확장성을 발휘하며 각 컬렉션 내에서 강력한 쿼리 기능을 사용할 수 있습니다.
  • 한계: 데이터베이스가 커지면 본질적인 계층구조를 갖는 데이터를 가져오기가 점점 복잡해질 수 있습니다.
  • 가능한 사용 사례: 동일한 채팅 앱에서 사용자 컬렉션 하나와 채팅방 및 메시지 컬렉션 하나를 만들 수 있습니다.
  • collections_bookmark users
    • class alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • class sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • collections_bookmark rooms
    • class software
      • collections_bookmark messages
        • class message1
              from : "alovelace"
              content : "..."
        • class message2
              from : "sride"
              content : "..."


3. 그리고 컬렉션이 아니라 내부 맵(배열)에서 검색이 가능하다. 

https://firebase.google.com/docs/firestore/solutions/arrays?hl=ko


내부적으로 맵을 넣어서 계층 검색을 할 수가 있다. 

즉 members -> document id(컬렉션) -> member(객체들) 

이런 구조이면 member 안에 map 형태를 넣어서 할수 있다.

예를 들어 map( key : photo , value : "path") 맵을 넣어서 

whereEqualTo(member.photo , "path") 로 쿼리 가능 하다는 것이다. 


4. 그리고 레퍼런스도 넣을 수 있다. 

DocumentReferecne 를 객체에 삽입해서 넣을 수 있다. 

하지만 가져올땐 계층적으로 못 가져오고 DocumentReference 를 가져오긴 한다. 흠..별 필요가 있는지?? ㅋㅋ


단점..

아직 서버쪽 어드민에서 Firestore를 지원 안해준다.. ㅠㅠ 

관리를 어떻게 해야할지 막막하다..

아직 베타라서 그런지 서비스가 지원안되는게 좀 있다는 점?


속도가 중요한 앱은 설계를 잘 해야 할 것 같다.  

1~2초씩 기본적으로 걸린다.. 




https://github.com/gkskenftpt/test/blob/master/1.md

https://github.com/gkskenftpt/test/blob/master/2.md

https://github.com/gkskenftpt/test/blob/master/3.md

https://github.com/gkskenftpt/test/blob/master/4.md


http://pluu.github.io/blog/android/droidkaigi/2017/12/30/droidkaigi-location/

'링크모음 > Android' 카테고리의 다른 글

Firebase Firestore 정리  (0) 2018.01.04
Dagger 의존성 관련 설명  (0) 2018.01.02
getFont 오류 나오는 경우  (0) 2017.12.28
안드로이드 엄청난 예제 링크  (0) 2017.12.27
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26

https://stackoverflow.com/a/47126127



Fix res/values/styles.xml and Manifest.xml like so:This solution is tested and don't forget to clean and build :

  1. Manifest.xml

change the theme of HomeActivity to :

        <activity
        android:name=".ui.home.HomeActivity"
        android:theme="@style/Base.Theme.AppCompat.Light" />
    <activity android:name=".BaseActivity"></activity>

2. res/values/styles.xml Make all your themes preceeded with Base :styles.xml will be like this :

<resources>

<!-- Base application theme. -->
<!--<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">-->

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">


<!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar" parent="Base.Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="Base.ThemeOverlay.AppCompat.Light" />

Detailed explanation as requested: Theme.AppCompat.Light.DarkActionBar is a subclass of the superclass Base anyway. Ctrl+click (Android Studio) on it and you will be taken to the source:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />
  1. GithubBrowser-Master.gradle

make support_version = "27.0.0" and not support_version = "26.0.2

4.app.gradle :

compileSdkVersion 27
    buildToolsVersion '27.0.0'

and not

   compileSdkVersion 26
buildToolsVersion '26.0.2'


'링크모음 > Android' 카테고리의 다른 글

안드로이드 지도 100프로 트래킹하기  (0) 2017.12.30
getFont 오류 나오는 경우  (0) 2017.12.28
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
인스턴트앱 팁  (0) 2017.12.04

'링크모음 > Android' 카테고리의 다른 글

getFont 오류 나오는 경우  (0) 2017.12.28
안드로이드 엄청난 예제 링크  (0) 2017.12.27
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
인스턴트앱 팁  (0) 2017.12.04
room 연동 관련 팁  (0) 2017.12.01

'링크모음 > Android' 카테고리의 다른 글

안드로이드 엄청난 예제 링크  (0) 2017.12.27
MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
인스턴트앱 팁  (0) 2017.12.04
room 연동 관련 팁  (0) 2017.12.01
2017 devfest 세션 및 후기 모음  (0) 2017.11.20

https://medium.com/nos-digital/some-useful-insights-on-instant-apps-67cc7d177695

'링크모음 > Android' 카테고리의 다른 글

MVI 패턴 즐겨찾기 모음  (0) 2017.12.26
Rn? 자마린??? 한국에서 위치는??  (0) 2017.12.05
room 연동 관련 팁  (0) 2017.12.01
2017 devfest 세션 및 후기 모음  (0) 2017.11.20
fileexposeexception 발생시  (0) 2017.11.16

코틀린으로 연동시 주의 할 점


1. Data class 설정시 꼭 val -> var 로 하자. 

2. app build gradle 설정시 윗부분에 apply plugin: 'kotlin-kapt' 을 넣어주자

3. Database 에 export = true 또는 

build.gradle 하단에 

============================================

configurations.all {

    resolutionStrategy.eachDependency { DependencyResolveDetails details ->

        def requested = details.requested

        if (requested.group == 'com.android.support') {

            if (!requested.name.startsWith("multidex")) {

                details.useVersion '26.0.2'

            }

        }

    }

}

==============================================

을 넣어서 오류를 없애자. 


4. 컴파일시 오류발생시

================================

// build.gradle defaultConfig 안에 넣어주자. 

javaCompileOptions {

            annotationProcessorOptions {

                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

            }

        }

==========================



코틀린 + 룸 연동 (초급)

https://medium.com/@tonyowen/a-room-with-a-view-getting-started-ec010f9f5448


룸연동시 커스텀 시간 타입 설정

https://medium.com/@chrisbanes/room-time-2b4cf9672b98


룸 엔터티 설명

https://medium.com/@tonyowen/room-entity-annotations-379150e1ca82


room DB 외부로 추출시 

https://medium.com/@sreekumar_av/how-to-export-backup-room-db-and-view-all-the-tables-using-sqlite-viewer-9b053d44690f


7 단계별로 알아보는 룸

https://medium.com/google-developers/7-steps-to-room-27a5fe5f99b2


버전업 올릴때 설명(중요함)!!

https://medium.com/google-developers/understanding-migrations-with-room-f01e04b07929




'링크모음 > Android' 카테고리의 다른 글

인스턴트앱 팁  (0) 2017.12.04
room 연동 관련 팁  (0) 2017.12.01
fileexposeexception 발생시  (0) 2017.11.16
텐서플로로 안드로이드에서 실행하기  (0) 2017.11.15
Mockito 관련 팁 모음 링크  (0) 2017.11.06

http://developer88.tistory.com/m/137

'링크모음 > Android' 카테고리의 다른 글

room 연동 관련 팁  (0) 2017.12.01
2017 devfest 세션 및 후기 모음  (0) 2017.11.20
텐서플로로 안드로이드에서 실행하기  (0) 2017.11.15
Mockito 관련 팁 모음 링크  (0) 2017.11.06
android 매트리얼 ui builder  (0) 2017.11.06

https://m.blog.naver.com/chandong83/221140432948

'링크모음 > Android' 카테고리의 다른 글

2017 devfest 세션 및 후기 모음  (0) 2017.11.20
fileexposeexception 발생시  (0) 2017.11.16
Mockito 관련 팁 모음 링크  (0) 2017.11.06
android 매트리얼 ui builder  (0) 2017.11.06
android 저장소 전략  (0) 2017.11.04

'링크모음 > Android' 카테고리의 다른 글

fileexposeexception 발생시  (0) 2017.11.16
텐서플로로 안드로이드에서 실행하기  (0) 2017.11.15
android 매트리얼 ui builder  (0) 2017.11.06
android 저장소 전략  (0) 2017.11.04
오픈소스 정리  (0) 2017.11.02

https://material.io/color/#!/?view.left=0&view.right=0&primary.color=9C27B0

'링크모음 > Android' 카테고리의 다른 글

텐서플로로 안드로이드에서 실행하기  (0) 2017.11.15
Mockito 관련 팁 모음 링크  (0) 2017.11.06
android 저장소 전략  (0) 2017.11.04
오픈소스 정리  (0) 2017.11.02
Android code style  (0) 2017.10.30

http://pluu.github.io/blog/android/droidkaigi/2017/11/01/droidkaigi-2017-android-storage/

'링크모음 > Android' 카테고리의 다른 글

Mockito 관련 팁 모음 링크  (0) 2017.11.06
android 매트리얼 ui builder  (0) 2017.11.06
오픈소스 정리  (0) 2017.11.02
Android code style  (0) 2017.10.30
Android RecyclerView 팁 모음  (0) 2017.10.30

'링크모음 > Android' 카테고리의 다른 글

android 매트리얼 ui builder  (0) 2017.11.06
android 저장소 전략  (0) 2017.11.04
Android code style  (0) 2017.10.30
Android RecyclerView 팁 모음  (0) 2017.10.30
정보통신망법-준수를-위한-앱-푸시-광고-가이드라인  (0) 2017.10.25

공식 가이드

https://source.android.com/source/code-style#follow-field-naming-conventions


참고 가이드

http://givenjazz.tistory.com/44


Square code style ( java  ,  Android)

https://github.com/square/java-code-styles

+ Recent posts