Anroid Debug Database


 




안드로이드 내부 DB 조회를 하는 방법은 여러가지가 있다.


폰을 루팅해서 경로에 진입한다 던지, 일부러 db 파일을 접근 가능한 경로에 카피 하는 방법 등등.


웹 검색을 하던 중, Android Debug Database 라는 놀라운 Tool 을 발견했다.

Fast Android Network 를 만든 팀의 오픈 소스 이다.


실제로 적용해보니 너무 간단해서 추천해주고 싶은 마음이 있었다. 내부 DB 를 자주 활용하는 개발자라면 강력 추천한다.


 




적용단계


  1. build.gradle 에 debugCompile 'com.amitshekhar.android:debug-db:1.0.1' 선언
  2. 앱 빌드 후, (아마 싱크하라고 상단에 노출될 것이다.) DebugDB 를 초기화 한 후, getAddressLog() 라는 함수를 호출하면, 로그캣에 http://xxx.xxx.x.xxx:8080 유형의 URL을 볼 수 있을 것이다. 열면 단말기의 DB 를 조회 할 수 있다.
  3. 단! 같은 와이파이나 ip 안에 존재 해야 한다.

 

 

[웹화면]


 

 

웹에서 내부 DB 조회를 할 수 있어서, 매우 편리하게 데이터를 확인할 수 있다.

 

 

 

코드

 

 

 build.gradle 셋팅

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    debugCompile 'com.amitshekhar.android:debug-db:1.0.1'    
}

 

 

 

기존에 8080 포트를 사용하고 있다면 아래와 같이 포트번호를 임의로 지정할 수 있다. 8081로 지정한 코드

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        debug {
            //Android Debug Database
            resValue("string", "PORT_NUMBER", "8081")
        }
    }

 

 

 

 

 

 

onCreate - DebugDB 초기화 및 로컬주소 받아오기

DebugDB.initialize(this);
DebugDB.getAddressLog();

 

 

onDestroy - DebugDB 해제

if(DebugDB.isServerRunning())
DebugDB.shutDown();

 

 





'안드로이드 > Library' 카테고리의 다른 글

Fast Android Networking -2  (0) 2017.07.20
Fast Android Networking  (0) 2017.07.18
DB Brower for SQLite  (0) 2017.07.12
쓸만한 이미지로더 라이브러리  (0) 2014.07.17
Posted by 자바리즘
,

Exo Player -1

안드로이드 2017. 7. 12. 09:46

레이아웃





  





엑소플레이어 초기화

private void initializePlayer() {
    if (player == null) {
      // a factory to create an AdaptiveVideoTrackSelection
      TrackSelection.Factory adaptiveTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
      // using a DefaultTrackSelector with an adaptive video selection factory
      player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(this),
          new DefaultTrackSelector(adaptiveTrackSelectionFactory), new DefaultLoadControl());
      player.addListener(componentListener);
      player.setVideoDebugListener(componentListener);
      player.setAudioDebugListener(componentListener);
      playerView.setPlayer(player);
      player.setPlayWhenReady(playWhenReady);
      player.seekTo(currentWindow, playbackPosition);
    }
    MediaSource mediaSource = buildMediaSource(Uri.parse(getString(R.string.media_url_dash)));
    player.prepare(mediaSource, true, false);
  }



 

 

ExoPlayer 의 setPlayWhenReady 함수에 true, false 에 따라 각각 재생 되고 멈추는 기능이 실행된다.

'안드로이드' 카테고리의 다른 글

Fabric 적용기 -01  (0) 2017.07.24
안드로이드 어노테이션 @CheckResult  (0) 2017.06.21
안드로이드 크래쉬 리포트  (0) 2015.02.10
windowSoftInputMode  (0) 2015.02.10
ViewPager 와 SwipeRefreshLayout  (2) 2015.01.19
Posted by 자바리즘
,

 

DB Brower for SQLite



아래 링크로 가서 OS 맞는 프로그램을 다운 받은 후 사용하면 된다.


http://sqlitebrowser.org/









'안드로이드 > Library' 카테고리의 다른 글

Fast Android Networking -2  (0) 2017.07.20
Fast Android Networking  (0) 2017.07.18
Android Debug Database  (0) 2017.07.13
쓸만한 이미지로더 라이브러리  (0) 2014.07.17
Posted by 자바리즘
,

Layout XML 2벌을 이용한 애니메이션 효과

 

 

1) Before

 

 

 

2) After

 

 

 

 

 

코드

 

 

       //Origin Constraint Layout
       ConstraintLayout constraintLayout = (ConstraintLayout)_view.findViewById(R.id.const_main);

       //1. Create ConstraintSet
       ConstraintSet constraintSet_01 = new ConstraintSet();
       ConstraintSet constraintSet_02 = new ConstraintSet();

       //2. Clone
       constraintSet_01.clone(mConstraintLayout);
       constraintSet_02.clone(getContext(), R.layout.activity_constraint_after);   //After ConstraintLayout

 

    //ConstraintSet 2번으로 레이아웃 변경
    private void apply() {
        TransitionManager.beginDelayedTransition(mConstraintLayout);
        constraintSet_02.applyTo(mConstraintLayout); 
    }

    //ConstraintSet 1번으로 레이아웃 변경 (원래 레이아웃)
    private void reset() {
        TransitionManager.beginDelayedTransition(mConstraintLayout);
        constraintSet_01.applyTo(mConstraintLayout);
    }

 

 

'안드로이드 > Component' 카테고리의 다른 글

ConstraintLayout -5 ConstraintSet Animation  (0) 2017.06.21
ConstraintLayout -4 GuideLine  (0) 2017.06.21
ConstraintLayout -3 체인속성  (0) 2017.06.20
ConstraintLayout -2 체인  (0) 2017.06.20
Constraint Layout -1  (0) 2017.06.19
Posted by 자바리즘
,

@CheckResult

 

반환값이 있는 메서드 (함수) 를 사용했을 경우, 반드시 값을 변수에 셋팅하는 것을 체크 한다.

 

만일 반환값을 셋팅하지 않으면, 컴파일 에러를 발생 시킨다.

 

 

 

아래 그림과 같이 getInt() 라는 함수를 호출 했는데, 리턴 값을 대입해 주지 않아서 에러가 발생 하는 것을 확인할 수 있다.

 

예를 들면, 무언가를 실행하는 것의 성공 | 실패 여부를 반드시 알아야 된다면, CheckResult 를 사용하는 것이 좋다.

 

 

'안드로이드' 카테고리의 다른 글

Fabric 적용기 -01  (0) 2017.07.24
Exo Player -1  (0) 2017.07.12
안드로이드 크래쉬 리포트  (0) 2015.02.10
windowSoftInputMode  (0) 2015.02.10
ViewPager 와 SwipeRefreshLayout  (2) 2015.01.19
Posted by 자바리즘
,

ConstraintLayout 에서 ConstraintSet 을 이용해서 Animation 효과를 줄 수 있다.

 

상당히 고급진(?) 애니메이션 효과를 보여주고 있다.

 

 

 

1) 초기화면, 아래와 같이 구성해 보았다. EVENT 라는 버튼을 누르면 BUTTON 1 ~ 3 의 체인효과를 변경하고, TextView 글씨 옆에 체크박스가 나오게 변경하려 한다.

 

 

 

 

 

2) 이벤트가 발생한 화면.

BUTTON 1, BUTTON 2, BUTTON 3 의 Chain 효과가 Packed 로 변경 되었고,

CheckBox 가 생겼다.   (애니메이션 효과를 보여주면 좋으련만...다들 어떻게 하던데. 알아보겠습니다 ㅠ)

 

 

3) CONNECT 라는 버튼을 누르면 아래와 같이 변하게 이벤트를 주었습니다.

(이게 좀 볼만하던데 말이죠)

 

 

 

 

코드는 이후에 더 보강하겠습니다.

굉장히 쉽습니다 :)

 

'안드로이드 > Component' 카테고리의 다른 글

ConstraintLayout Animation -6  (0) 2017.06.22
ConstraintLayout -4 GuideLine  (0) 2017.06.21
ConstraintLayout -3 체인속성  (0) 2017.06.20
ConstraintLayout -2 체인  (0) 2017.06.20
Constraint Layout -1  (0) 2017.06.19
Posted by 자바리즘
,

브런치 라는 사이트에서 읽었던 내용 중에 좋다고 생각 되는 것들을 나열 합니다.



Proguard - 쓰이지 않는 코드를 제거하여 APK 사이즈를 줄인다.



Android Debug Database -

브라우저에서 데이터베이스와 SharedPreferences 구조를 볼 수 있다.



Include - 재 사용 UI 는 Include 를 써서 사용한다.



유용 HTTP 라이브러리 - Fast Android Networking,

Volley, Retrofit






출처 : https://brunch.co.kr/@linterpreteur/14

Posted by 자바리즘
,