기본 구성 요소
activity.onSaveInstanceState는 activity 생명주기 방법이 아닙니다. 실행을 보장할 수 없습니다. UI 임시 데이터만 저장할 수 있습니다. 데이터 지속화 작업은 onstop이나 onpause 방법에 두어야 합니다 intent 점프를 보내기 전에 반드시 안전성 검사를 해야 한다. 적당한 컨트롤을 찾지 못하도록 ActivityNotFoundException에 보고한다.
service.onstartcommand/onbind 방법에서 시간 소모 조작을 피하고 intent 서비스 또는 다른 비동기 조작으로 변경해야 합니다
brodcastReceiver에서 피하세요.onReceive(주 라인에서 작업하면 10s 이상 소모되면 죽임) 및 하위 라인에서 소모 작업을 수행하려면 intent 서비스,handlerThread 등을 추천합니다.
은식 intent 방송의 민감한 정보를 피하고 응용 내에서localbrodcast 관리자로 제한할 수 있다.sendbrodcast 구현, 안전성과 운행 효율 향상onpause는 시간 소모 조작을 실행하지 않으면 페이지 전환 효율에 영향을 줄 수 있음 동적 등록 BrodCastReceiver 시 register와 unregister가 쌍으로 나타나 유출을 피한다Ui 레이아웃
scrollview에listview/gridview/Expandable Listview/recyclerview 등을 소포할 수 없음listview의 모든 item을 메모리에 불러와 커다란 메모리 공간을 소모한다. ListView는 수직 스크롤 기능을 자체로 가지고 scrollview를 감싸지 않아도 된다. 과도한 그리기 감소: 자view와 부view는 배경을 반복하지 않고 레이아웃 등급을 감소프로세스, 스레드 통신
intent가 기초 구성 요소 간에 데이터를 전달하는 데 1MB의 크기 제한이 있고 OOM을 초과할 경우 이벤트버스 대체 방안을 고려할 수 있다 새 루트는 asynctask 또는threadpool을 사용해야 하며, 생성 루트를 표시하지 마십시오 스레드 탱크를 사용하면 스레드 창설과 소각의 시간과 시스템 자원 비용을 줄일 수 있고 익명 스레드는 관리와 분석이 불편하다 라인 명칭은 가능한 한 업무와 관련되어 최적화 분석에 편리하다. 네트워킹과 같은 소모 시간은 운영 스레드에 둘 수 없고 하위 스레드에서 UI를 새로 고칠 수 없음파일, 데이터베이스
경로 하드코딩을 피하고 내부 또는 외부 저장소 API를 사용하여 디렉터리 작업을 가져와야 합니다(외부 저장소의 가용성을 확인하십시오!) public File getDir(String alName) {
File file = new File(Environment.getExternalStoragePublicDirectory(Environm ent.DIRECTORY_PICTURES), alName);
if (!file.mkdirs()) {
Log.e(LOG_TAG, "Directorynotcreated");
}
return file;
}
응용 프로그램 간에 FileProvider를 통해 파일을 공유하고 파일 접근 권한을 개방하지 마십시오SharedPreference는 기본 데이터 형식만 저장할 수 있고 복잡한 형식은 파일이나 데이터베이스에 저장해야 한다 빈번하게 조작하면 SP의 apply의 성능은commit보다 우수하다. apply는 먼저 내용을 메모리에 쓴 다음에 마지막으로 비동기적으로 디스크에 수정한다. commit는 디스크에 즉시 쓰고 제출 결과실을 확인해야 commit를 사용하는 것을 추천한다. cursor를 제때에 닫아 메모리 유출을 피하고 다중 루틴 데이터베이스 조작은 사무(sqlite는 데이터베이스 레벨 잠금)를 사용해야 한다.
SQLiteDatabase를 사용하지 마십시오.execSQL, 빈틈 주입을 피하고 sqlitedatabase를 사용하는 것을 권장합니다.insert() 등bitmap, Drawable, 애니메이션
큰 그림이나 여러 장의 그림을 불러옵니다. 메인 라인을 막지 말고 토니핑 압축 png 그림을 사용하십시오
glide를 사용하여view내 이미지 캐시를 하고bitmapfactory를 사용하여 압축하여 OOM을 피하는 것을 권장합니다
activity.onpause와 onstop 방법에서 실행 중인 애니메이션 효과 중단 RGB565는 RGB888보다 적은 메모리를 필요로 하지만 투명도를 설정할 수 없음데이터 보안
Android:allowbackup은false로 설정해야 합니다.
가능한 V2 서명 모든 구성 요소 신중 설정 안드로이드: exported=truelog 민감한 정보를 인쇄하지 마십시오 암호화 스푼은 코드에 하드코딩할 수 없으며 역컴파일 방지
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.