Development Tip

Android Studio를 사용하여 공유 환경 설정 파일을 보려면 어떻게해야합니까?

yourdevel 2020. 10. 6. 19:29
반응형

Android Studio를 사용하여 공유 환경 설정 파일을 보려면 어떻게해야합니까?


공유 환경 설정을 사용하여 내 앱의 특정 값을 저장하고 있습니다. 정보가 실제로 내 휴대 전화에 저장된 파일을보고 싶습니다. Eclipse에서 여러 가지 방법을 찾았지만 Android Studio에서 디버깅 중입니다. 내 전화가 루팅되었습니다. 이러한 유형의 파일을 읽으려면 루트 액세스 권한을 갖는 것이 중요하다는 것을 읽었습니다. 방법이 없으면 내 프로그램을 통해 정보에 액세스하는 방법을 찾은 다음 log cat에 출력합니다. 하지만 훨씬 간단하기 때문에 전화로 직접 파일을 볼 수 있기를 바랍니다. 감사.


Android Studio에서 Android Device Monitor를 시작하고 파일 탐색기로 이동 한 다음 "/ data / data / <패키지 이름> / shared_prefs /"를 찾습니다. 거기에서 XML을 찾을 수 있으며 검사를 위해 복사 할 수도 있습니다.

루팅되지 않은 기기가있는 경우 Android Studio에서 직접 할 수 없습니다. 그러나 adb shell애플리케이션이 디버그 버전 이면 파일에 액세스 할 수 있습니다 .

adb shell
run-as your.app.id
chmod 777 shared_prefs/your.app.id_preferences.xml
exit # return to default user
cp /data/data/your.app.id/shared_prefs/your.app.id_preferences.xml /sdcard

그런 다음 adb를 사용하여 / sdcard 디렉토리에서 파일을 가져올 수 있습니다.


Stetho

응용 프로그램이 디버그 모드에있는 동안 http://facebook.github.io/stetho/사용 하여 공유 기본 설정에 액세스 할 수 있습니다 . 루트 없음

풍모:

  1. 공유 기본 설정보기 및 편집
  2. sqLite db보기 및 편집
  3. 보기 계층 구조보기
  4. http 네트워크 요청 모니터링
  5. 장치 화면에서 스트림보기
  6. 그리고 더....

여기에 이미지 설명 입력

기본 설정 :

  1. build.gradle 추가 compile 'com.facebook.stetho:stetho:1.5.0'
  2. 응용 프로그램의 onCreate () 추가 Stetho.initializeWithDefaults(this);
  3. PC의 Chrome에서 chrome : // inspect / 로 이동합니다.

업데이트 : 플리퍼

Flipper 는 페이스 북의 새로운 대안입니다. 더 많은 기능이 있지만 당분간 작성은 Mac에서만 사용할 수 있으며 구성하기가 약간 더 어렵고 데이터베이스 디버깅이 부족하며 매우 향상된 레이아웃 검사기를 연결합니다.

@Jeffrey 제안을 사용할 수도 있습니다.

  • 장치 파일 탐색기 열기 (화면 오른쪽 아래)
  • data / data / com.yourAppName / shared_prefs로 이동합니다.

Android Studio 3.x의 일부인 Device File Explorer는 기본 설정 파일, 캐시 항목 또는 데이터베이스를 탐색하는 데 정말 좋습니다.

  1. 공유 기본 설정 / data / data // shared_prefs 디렉토리

여기에 이미지 설명 입력

이렇게 생겼어요

여기에 이미지 설명 입력

장치 파일 탐색기를 열려면 :

보기> 도구 창> 장치 파일 탐색기를 클릭하거나 도구 창 표시 줄에서 장치 파일 탐색기 버튼을 클릭합니다.

여기에 이미지 설명 입력


디버깅 목적으로 특수 활동을 간단히 만들 수 있습니다.

@SuppressWarnings("unchecked")
public void loadPreferences() {
// create a textview with id (tv_pref) in Layout.
TextView prefTextView;
prefTextView = (TextView) findViewById(R.id.tv_pref);
    Map<String, ?> prefs = PreferenceManager.getDefaultSharedPreferences(
            context).getAll();
    for (String key : prefs.keySet()) {
        Object pref = prefs.get(key);
        String printVal = "";
        if (pref instanceof Boolean) {
            printVal =  key + " : " + (Boolean) pref;
        }
        if (pref instanceof Float) {
            printVal =  key + " : " + (Float) pref;
        }
        if (pref instanceof Integer) {
            printVal =  key + " : " + (Integer) pref;
        }
        if (pref instanceof Long) {
            printVal =  key + " : " + (Long) pref;
        }
        if (pref instanceof String) {
            printVal =  key + " : " + (String) pref;
        }
        if (pref instanceof Set<?>) {
            printVal =  key + " : " + (Set<String>) pref;
        }
        // Every new preference goes to a new line
        prefTextView.append(printVal + "\n\n");     
    }
}
// call loadPreferences() in the onCreate of your Activity.

Android Studio-> Device File Explorer (오른쪽 하단 모서리)-> 데이터-> 데이터-> {package.id}-> shared-prefs

참고 : 모바일 장치를 Android 스튜디오에 연결해야하며 선택한 애플리케이션이 디버그 모드에 있어야합니다.


이것은 오래된 게시물이지만 SharedPreferences.xmlAndroid Studio를 사용하여 보는 것에 관한 질문이므로 여기에 그래픽 답변을 넣어야합니다 . 그래서 여기에 있습니다.

도구-> Android Device Monitor로 이동합니다. 클릭하여 장치 모니터를 엽니 다.

여기에 이미지 설명 입력

그런 다음 장치 모니터에서 파일 탐색기 탭을 선택해야합니다. 데이터 폴더를 찾아 그 안에 다른 데이터 폴더를 찾으십시오. 여기에는 응용 프로그램 패키지의 이름이있는 폴더가 포함되며 원하는 SharedPreferences.xml.

여기에 이미지 설명 입력

선택 SharedPreferences.xml파일을 다음 당겨 위의 이미지의 오른쪽 상단에 표시된 버튼을 사용하여 컴퓨터에 파일을 저장합니다.

장치 에뮬레이터를 사용했습니다.


또 다른 간단한 방법은 휴대폰에서 루트 탐색기 앱을 사용하는 것입니다.

로 이동 한 다음 /data/data/package name/shared preferences folder/name of your preferences.xml, 사용할 수있는 ES 파일 탐색기를 받는 사람, 가서 root, 장치의하지 sd card.


단일 또는 다중 공유 기본 설정 파일

여러 Shared Preference파일 이있는 경우 모든 파일을 표시하는 좋은 방법이 있지만 파일 이름 하나만 전달할 수도 있습니다.

  • loadSharedPrefs("pref_name");

  • loadSharedPrefs("shared_pref1", "shared_pref2", "shared_pref3");

필요에 따라 다음 중 하나를 선택하십시오.

단일 유형 값

public void loadSharedPrefs(String ... prefs) {

    // Logging messages left in to view Shared Preferences. I filter out all logs except for ERROR; hence why I am printing error messages.

    Log.i("Loading Shared Prefs", "-----------------------------------");
    Log.i("----------------", "---------------------------------------");

    for (String pref_name: prefs) {

        SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
        for (String key : preference.getAll().keySet()) {

            Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
                  preference.getString(key, "error!"));

        }

        Log.i("----------------", "---------------------------------------");

    }

    Log.i("Finished Shared Prefs", "----------------------------------");

}

다중 유형 값

public void loadSharedPrefs(String ... prefs) {

    // Define default return values. These should not display, but are needed
    final String STRING_ERROR = "error!";
    final Integer INT_ERROR = -1;
    // ...
    final Set<String> SET_ERROR = new HashSet<>(1);

    // Add an item to the set
    SET_ERROR.add("Set Error!");

    // Loop through the Shared Prefs
    Log.i("Loading Shared Prefs", "-----------------------------------");
    Log.i("------------------", "-------------------------------------");

    for (String pref_name: prefs) {

        SharedPreferences preference = getSharedPreferences(pref_name, MODE_PRIVATE);
        Map<String, ?> prefMap = preference.getAll();

        Object prefObj;
        Object prefValue = null;

        for (String key : prefMap.keySet()) {

            prefObj = prefMap.get(key);

            if (prefObj instanceof String) prefValue = preference.getString(key, STRING_ERROR);
            if (prefObj instanceof Integer) prefValue = preference.getInt(key, INT_ERROR);
            // ...
            if (prefObj instanceof Set) prefValue = preference.getStringSet(key, SET_ERROR);

            Log.i(String.format("Shared Preference : %s - %s", pref_name, key),
                  String.valueOf(prefValue));

        }

        Log.i("------------------", "-------------------------------------");

    }

    Log.i("Loaded Shared Prefs", "------------------------------------");

}

}

Logcat 출력

Shared Preference값은 모두 String이지만 위의 두 가지 방법 중 하나를 사용하는 출력입니다.

I/Loading Shared Prefs﹕ -----------------------------------
I/------------------﹕ -------------------------------------
I/Shared Preference : FAVORITE - 135397﹕ Jurassic World
I/Shared Preference : FAVORITE - 87101﹕ Terminator Genisys
I/Shared Preference : FAVORITE - 177677﹕ Mission: Impossible – Rogue Nation
I/------------------﹕ -------------------------------------
I/Shared Preference : WATCHED - 177677﹕ Mission: Impossible – Rogue Nation
I/Shared Preference : WATCHED - 157336﹕ Interstellar
I/Shared Preference : WATCHED - 135397﹕ Jurassic World
I/Shared Preference : WATCHED - 87101﹕ Terminator Genisys
I/------------------﹕ -------------------------------------
I/Shared Preference : WILL_WATCH - 211672﹕ Minions
I/Shared Preference : WILL_WATCH - 102899﹕ Ant-Man
I/------------------﹕ -------------------------------------
I/Loaded Shared Prefs﹕ ------------------------------------

에서 안드로이드 스튜디오 3 :

  • Open Device File Explorer (Lower Right of screen).
  • Go to data/data/com.yourAppName/shared_prefs.

or use Android Debug Database


Run the application in Emulator after you insert some data, just close the application.

Now open the DDMS or Android Monitor and select your emulator, on the right side you can see the File Explorer, look for Data folder in it and look for your application package that you have created, in that you can find the shared preference file open it , you can see the XML file, click it and click the pull a file from the device button in the top right corner.

The XML file will be saved in your desired location, then you can open it using any editor like notepad++ and can view the data you have entered.


I always find these commands useful in console:

  1. Find the correct file name

    adb shell

    ls /data/data/com.your.package/shared_prefs

  2. Get the file to local directory

    adb pull /data/data/com.your.package/shared_prefs/the_file_you_want $local_dir

  3. 에서 확인하십시오 $local_dir.


에뮬레이터를 사용하는 경우 다음 sharedPrefs.xml명령을 사용하여 터미널 에서 파일을 볼 수 있습니다 .

  • adb root
  • cat /data/data/<project name>/shared_prefs/<xml file>

그 후 adb unroot가상 장치를 루팅하지 않으려면 사용할 수 있습니다 .


preferenceAndroid Studio에서 공유를 열려면

오른쪽에서 장치 탐색기 파일 열기-데이터> 데이터>> shared_prefs

자세한 설명은 첨부 된 이미지를 찾으십시오.


장치 파일 탐색기에서 아래 경로를 따르십시오.

/data/data/com.**package_name**.test/shared_prefs/com.**package_name**.test_preferences.xml

참고 URL : https://stackoverflow.com/questions/23635644/how-can-i-view-the-shared-preferences-file-using-android-studio

반응형