Hyperion Android로 Android 애플리케이션을 디버깅하십시오.
16224 단어 Hyperion-AndroidAndroid
Hyperion-Android
Hyperion Android는 Stheo, LeakCanary, DebugAlter 등과 같은 디버깅 시에만 사용할 수 있는 라이브러리
Google AutoService를 통해dependency에만 추가하면 코드를 편집하지 않은 상태에서 기능을 추가할 수 있음
Hyperion Android 기능 소개
hyperion-attr
추천도 ★
*View의 Attribute 표시
* Enable 등으로 전환할 수도 있습니다.
hyperion-measurement
추천도 ★★★
Zeplin과 마찬가지로 View와 View 사이 및 View의 크기는 dp 단위로 관찰할 수 있습니다
이것 을 위해 넣었다고 하지만, 아주 좋은 기능 이다
한 번 사용하면 이게 없으면 정확한 레이아웃을 할 수 없어요.
hyperion-shared-preferences
추천도 ★
Preference 값을 동적으로 변경하는 기능
hyperion-recorder
추천도 ★
응용 프로그램 동작을 비디오로 저장할 수 있는 기능
hyperion-disk
추천도 ★
응용 프로그램 데이터 디렉토리에 저장된 파일의 기능을 볼 수 있습니다.
hyperion-phoenix
추천도 ★
애플리케이션을 재부팅하는 동안 데이터 및 캐시를 제거할 수 있는 기능
hyperion-crash
추천도 ★★★
프로그램이 강제로 끝날 때 충돌 상태 로그를 표시하는 기능
소박하고 편리하다
타사 플러그인 Hyperion-Chuck
추천도 ★
jgilfelt/chuck 기능 호출 가능
응용 프로그램에서 http 로그를 확인할 수 있습니다
https://github.com/Commit451/Hyperion-Chuck
hyperion-geiger-counter
추천도
아직 발표되지 않은 것 같지만 낙하가 감지되는 것 같아요.(샘플 프로그램에서 사용했지만 떨어진 프레임이 없어서 시도하지 않았습니다.)
총포 메뉴 추가해주세요.
플러그인 관리자를 모집하는 것 같아서 나눠드릴 수도 있어요.
https://github.com/willowtreeapps/Hyperion-Android/issues
Hyperion Android 도입을 토대로 적합한 위치 및 해결 방법 찾기
Hyperion-Android를 넣는 데 많은 시간을 들인 점을 소개해 드리겠습니다.
데이터 템플릿 생성 오류
debugImplementation 'com.willowtreeapps.hyperion:hyperion-core:0.9.21'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-attr:0.9.21'
...
README에 적힌 것처럼 dependency에 Hyperion-Android를 넣어 구축하려 할 때 자신의 환경에서 DataBinding을 생성할 수 없는 Binding 시스템에 오류가 발생했습니다.
Hyperion이 최신 Support Library 등을 사용했기 때문입니다.+--- com.willowtreeapps.hyperion:hyperion-core:0.9.21
| +--- com.willowtreeapps.hyperion:hyperion-plugin:0.9.21
| +--- com.android.support:appcompat-v7:27.1.0 (*)
| +--- com.android.support:recyclerview-v7:27.1.0 (*)
| \--- com.google.dagger:dagger:2.15
| \--- javax.inject:javax.inject:1
아래와 같이 제외해서 처리할 수 있습니다(반대로 하이퍼레이션이 잘 작동하지 않는 부분이 있을 수 있습니다) ["hyperion-core", "hyperion-attr", "hyperion-measurement", "hyperion-disk", "hyperion-recorder","hyperion-phoenix","hyperion-crash"].forEach {
debugImplementation ("com.willowtreeapps.hyperion:$it:0.9.20"){
exclude group: 'com.android.support'
exclude group: 'com.google.dagger'
}
}
기존의 디버그 메뉴는 어떻게 처리합니까?
프로그램이 디버그 메뉴를 설치했다면 어떻게 처리해야 합니까?
*기존 디버그 메뉴를 삭제하시겠습니까?
* Plugin을 직접 만드십니까?
* ???
이미 있는 디버그 메뉴를 열기 위해 Plugin 만들기
Kotlin 등의 상황에 따라 Kopt를 통해 Google AutoService에 의존합니다.
모듈을 사용하여 다음 모듈을 만들고 debugImplementation에서 이 모듈을 참조합니다. implementation 'com.willowtreeapps.hyperion:hyperion-plugin:0.9.21'
kapt "com.google.auto.service:auto-service:1.0-rc4"
다음 플러그인을 만듭니다.
요점은 다음과 같다.
Hyperion-Android를 넣는 데 많은 시간을 들인 점을 소개해 드리겠습니다.
데이터 템플릿 생성 오류
debugImplementation 'com.willowtreeapps.hyperion:hyperion-core:0.9.21'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-attr:0.9.21'
...
README에 적힌 것처럼 dependency에 Hyperion-Android를 넣어 구축하려 할 때 자신의 환경에서 DataBinding을 생성할 수 없는 Binding 시스템에 오류가 발생했습니다.Hyperion이 최신 Support Library 등을 사용했기 때문입니다.
+--- com.willowtreeapps.hyperion:hyperion-core:0.9.21
| +--- com.willowtreeapps.hyperion:hyperion-plugin:0.9.21
| +--- com.android.support:appcompat-v7:27.1.0 (*)
| +--- com.android.support:recyclerview-v7:27.1.0 (*)
| \--- com.google.dagger:dagger:2.15
| \--- javax.inject:javax.inject:1
아래와 같이 제외해서 처리할 수 있습니다(반대로 하이퍼레이션이 잘 작동하지 않는 부분이 있을 수 있습니다) ["hyperion-core", "hyperion-attr", "hyperion-measurement", "hyperion-disk", "hyperion-recorder","hyperion-phoenix","hyperion-crash"].forEach {
debugImplementation ("com.willowtreeapps.hyperion:$it:0.9.20"){
exclude group: 'com.android.support'
exclude group: 'com.google.dagger'
}
}
기존의 디버그 메뉴는 어떻게 처리합니까?
프로그램이 디버그 메뉴를 설치했다면 어떻게 처리해야 합니까?
*기존 디버그 메뉴를 삭제하시겠습니까?
* Plugin을 직접 만드십니까?
* ???
이미 있는 디버그 메뉴를 열기 위해 Plugin 만들기
Kotlin 등의 상황에 따라 Kopt를 통해 Google AutoService에 의존합니다.
모듈을 사용하여 다음 모듈을 만들고 debugImplementation에서 이 모듈을 참조합니다.
implementation 'com.willowtreeapps.hyperion:hyperion-plugin:0.9.21'
kapt "com.google.auto.service:auto-service:1.0-rc4"
다음 플러그인을 만듭니다.요점은 다음과 같다.
@AutoService(Plugin.class)
class HelloWorldPlugin extends Plugin {
@Override
public PluginModule createPluginModule() {
return new HelloWorldPluginModule();
}
}
class HelloWorldPluginModule extends PluginModule {
@Override
public View createPluginView(@NonNull LayoutInflater layoutInflater, @NonNull ViewGroup parent) {
final TextView textView = new TextView(parent.getContext());
textView.setText("Hello Hyperion Plugin");
textView.setTextSize(50);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Hyperion", "goto debugmenu");
}
});
return textView;
}
}
플러그인을 Hyperion에 추가
응용 프로그램 모듈에 설치할 때 개발 환경에 코드를 추가하지 않으면 안 되고main/이하에 설치하지 않으면 Google의 AutoService가 메뉴에 없는 이유를 알 수 없으므로 운영 환경에 코드를 추가하지 않으면 Hyperion은 기존 디버그 메뉴에 지시선을 추가할 수 없습니다.
다른 모듈로 바꿀 수 있지만 그러면 그 모듈에서 응용 프로그램 내의 코드를 볼 수 없습니다.
포스터가 나와 AutoService 없이 앱에 직접 추가할 수 있습니다!
메뉴를 추가하기 위해 플러그인을 추가할 수 있습니다.
PluginSource source = Hyperion.getPluginSource();
class MyPluginSource implements PluginSource {
private PluginSource originalPluginSource;
MyPluginSource(PluginSource originalPluginSource) {
this.originalPluginSource = originalPluginSource;
}
@Override
public Set<Plugin> getPlugins() {
final HashSet<Plugin> plugins = new HashSet<>();
plugins.addAll(originalPluginSource.getPlugins());
// ここで追加したいプラグインを指定する
plugins.add(new HelloWorldPlugin());
return plugins;
}
}
Hyperion.setPlugins(new MyPluginSource(source));
플러그인 만드는 게 귀찮아요?
굳이 플러그인을 직접 만들지 않더라도 이걸 사용하면 간단하게 하이퍼레이션에 아이템을 추가할 수 있다.(홍보)
https://github.com/takahirom/Hyperion-Simple-Item
public class DebugApp extends App {
@Override public void onCreate() {
super.onCreate();
final SimpleItem item = new SimpleItem.Builder("all: this is the title")
.text("this is the text")
.image(R.drawable.ic_list_black_24dp)
.clickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Toast.makeText(App.this, "click",Toast.LENGTH_SHORT).show();
}
})
.build();
SimpleItemHyperionPlugin.addItem(item);
Pull Request 가져오기
DridKaigi 2018 공식 애플리케이션의 가져오기 PR입니다.
https://github.com/DroidKaigi/conference-app-2018/pull/672
총결산
Hyperion-Android 느낌이 좋으니 넣어보세요.
DataBinding에 오류가 발생하면 의존 관계를 의심해 보세요.
기존의 디버그 메뉴로 넘어갈 때 Hyperion-simple-item을 넣으세요.
Reference
이 문제에 관하여(Hyperion Android로 Android 애플리케이션을 디버깅하십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takahirom/items/2f6557f945ddd7c5e074
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Hyperion-Android 느낌이 좋으니 넣어보세요.
DataBinding에 오류가 발생하면 의존 관계를 의심해 보세요.
기존의 디버그 메뉴로 넘어갈 때 Hyperion-simple-item을 넣으세요.
Reference
이 문제에 관하여(Hyperion Android로 Android 애플리케이션을 디버깅하십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takahirom/items/2f6557f945ddd7c5e074텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)