Etc

Etc - Study(이것저것)

85chong 2022. 1. 6. 10:27
728x90
반응형
SMALL

  <!--  DialogBase   -->
    <style name="DialogBase">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowTitleStyle">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:background">@color/color_e90000</item>
    </style>


위의 다이얼로그 속성의미


android:backgroundDimEnabled
    true : dialog view 바깥쪽을 system 이 정한 dim color 로 어둡게 해준다.
    false : dim 처리하지 않는다.


android:windowAnimationStyle
    animation res : 해당 animation 을 적용한다.
    @android:style/Animation 을 지정해주면 animation 이 없다.


android:windowBackground
    drawble res : 배경 색상을 지정한다
    dialog 일 경우 windowIsFloating 이 true 라면 dialog view 영역만이 적용되고, false 라면 전체화면에 적용된다.


android:windowTitleStyle
    style res : window title 에 대한 style 을 지정해준다.


android:windowContentOverlay
    Window 의 content area 에 drawable 이 overlay 된다.
    보통 title 아래 shadow 를 넣는데 사용된다.


android:windowIsFloating
    true : dialog 가 child size 만큼만 view size 를 가진다.
    false : dialog 가 전체 화면을 사용한다.


android:windowFrame
    drawasble res : window 주변 frame 을 지정한다.


android:backgroundDimEnabled
    true - 반투명 검정 /  false - 완전 투명 



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


JSON 레트로핏 통신 방식중에 json 파일로 되어있는 부분은 그냥 파일 그대로  쓰고, 나머진 기존의 방식대로 하면 된다.

    @GET("AppSet.json")
    Call<Res_introData> onIntro();


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

하이브리드는 앱에서 받을 준비가 되어있는 상태에서 , 웹에서 어떤 이벤트가 발생하면 웹에서 값을 달라고 한다?? 그때 앱에서
맞는 값을 전달하면 앱에서 웹을 제어할 수 있게 됨


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

android studio 에서 GET,SET 처럼 클릭 몇번으로 findViewbyId 를 대신 처리해주는 플러그인 => Prettify

androdi studio > file > settings > plugins > 검색어 : prettify 툴을 설치해주면 끝 >근데 사용이 안됨 이상함



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



 AES / CBC / PKCS5Padding 방식을 사용해 주어진 데이터를 암호화합니다. 각 용어를 간략하게 설명하자면 다음과 같습니다.

AES: 미국에서 개발된 블럭 암호화 방식으로 좀 더 나은 보안성을 가진다. 데이터를 일정 크기(블럭)로 나눠 암호화하며 보통 128비트, 192비트, 256비트 단위로 암호화한다. 키의 길이는 암호화 방식에서 사용할 블럭 크기와 완전히 같아야 하는 특징이 있다.
CBC: 블럭을 회전시키는 방식을 말한다. 최초로 소개된 블럭 회전 알고리즘인 ECB(Electronic Code Book) 의 보안 취약점을 해결하기 위한 방식으로 같은 데이터 입력에 대해 완전히 다른 결과를 내므로 보안성이 좀 더 높다. 하지만 CBC 방식을 위해서는 초기화 벡터(Initialisation Vector, IV)를 반드시 사용해야 한다.
IV : CBC 블럭 회전방식에 사용하는 초기화 값. 암호화할 데이터와 키가 변하지 않더라도 이 값만 바뀌면 결과가 크게 달라진다. 암호화 key 와는 전혀 무관한 값이기 때문에 외부에 노출되더라도 보안 위협은 적은 편이며 암호화 요청마다 다른 IV 를 사용해 보안성을 높일 수 있다. 다만, 키 길이와 일치하는 길이의 IV 가 필요하다.
PKCS5Padding: 블럭 암호화 방식은 입력 데이터의 길이가 블럭의 길이 혹은 그 배수와 일치해야 하는 문제점이 있다. 입력 데이터가 블럭 길이보다 짧을 경우 원칙적으로 암호화가 불가능하다. 이런 어이없는 단점을 보완하기 위한 방식으로, 입력 데이터를 강제로 블럭 크기만큼 맞춰주는 알고리즘의 일종이다.


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



Retrofit2 통신 할때, array 형식의 json 데이터를 받을때, object 로 받으면 stackOverflow Error 가 뜨고, 별 이상한 검색도 안되느 에러가 뜬다. 서버에서 데이터 내려받을때 주의하자!

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


FirebaseStore 를 사용시 실시간 데이터 처리 SnapshotListener 를 사용하여 가능하다.


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

구글 계정 다중으로 사용하려면 ID+숫자@gmail.com 으로 등록하면 여러개를 등록할수있자(회원가입 테스트 할때 유용함)



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


 Broadcast 로 백그라운드에서 대기하다가(ex 네트워크 실시간 체크) 반응이왔을때 onReceive 로 받아서 처리할때 보통 notification 으로 띄운다.
근데 다이얼로그로 띄우고 싶은 경우