>  기사  >  바이두 안드로이드 면접 질문 공유

바이두 안드로이드 면접 질문 공유

藏色散人
藏色散人앞으로
2020-07-31 14:23:563090검색

추천: "2020 Android 면접 질문 모음 [컬렉션]"

1 Android dvm Linux 프로세스, 응용 프로세스는 동일한 개념

DVM의 가상 버전을 말합니다. dalivk 기계. 모든 Android 애플리케이션은 자체 프로세스에서 실행되며 독립적인 Dalvik 가상 머신 인스턴스를 갖습니다. 그리고 모든 DVMLinux 의 프로세스이므로 동일한 개념으로 간주할 수 있습니다.

2sim뭐가 막혔어 EF Function

sim 멈춤 파일 시스템 주로 휴대폰과의 통신을 위한 자체 사양이 있습니다. sim 자체에는 자체 운영 체제가 있을 수 있으며, EF는 휴대폰과의 저장 및 통신에 사용됩니다

3 . 임베디드 운영 체제의 메모리 관리 유형은 무엇이며 그 특징은 무엇입니까? 4, 임베디드 실시간 운영 체제란 무엇입니까?

?

실시간 운영 체제가 내장되어 있다는 것은 외부 이벤트나 데이터가 생성되면 이를 충분히 빠른 속도로 받아들여 처리할 수 있고, 그 처리 결과에 따라 생산 프로세스를 제어하거나 내부 처리 시스템을 변경할 수 있음을 의미합니다. 지정된 시간에 신속하게 응답하고 모든 실시간 작업을 제어하여 동시에 실행되는 내장 운영 체제입니다. 실시간 시스템을 사용해야 하는 시스템 응답 시간에 대한 엄격한 요구 사항이 있는 산업 제어, 군사 장비, 항공 우주 및 기타 분야에 주로 사용됩니다. 소프트 실시간과 하드 실시간으로 나눌 수 있으며, android
linux 커널을 기반으로 하므로 소프트 실시간입니다. 5

, 가장 긴 단문 메시지는 몇 바이트인가요?중국어70( 구두점 포함

) , 영어 160 bytes 6,

android에는 어떤 유형의 애니메이션이 있나요? 그들의 특성과 차이점은 무엇입니까? 두 종류, 하나는 Tween 애니메이션이고 다른 하나는 Frame

애니메이션입니다. Tween 애니메이션, 이 구현 방법은 뷰 구성 요소를 이동, 확대, 축소하고 투명도 변경을 생성할 수 있습니다. 다른 Frame 애니메이션은 순차적 재생을 통해 배열됩니다. 달성하기 위해, 영화와 비슷합니다.

7handler메커니즘의 원리

andriod는 스레드 간의 통신을 충족시키기 위해 Handler Looper 를 제공합니다. Handler 선입선출 원칙. Looper 클래스는 특정 스레드의 개체 간 메시지 교환 (Message Exchange)을 관리하는 데 사용됩니다. ( 메시지 대기열
). 2)Handler: 푸시를 위해 Looper과 통신할 Handler객체를 구성할 수 있습니다. 새 메시지가 도착했습니다 Message Queue 또는 Message Queue)에서 Looper이 보낸 메시지를 받습니다. 3)
Message Queue(
Message Queue):은 스레드가 넣은 메시지를 저장하는 데 사용됩니다. 4) 스레드:
UI 스레드
는 일반적으로 메인 스레드이고 Android그것을 위한 메시지 대기열 .

8, mvc의 원리에 대해 이야기해 보세요. android에 있습니다.

에 있어요

MVC(Model_view_contraller)” Model_View_Controller. MVC애플리케이션은 항상 이 세 부분으로 구성됩니다. Event(Event)로 인해 ControllerModel 또는 이 변경됩니다. 보기 또는 두 가지를 동시에 변경하세요. ControllerModels의 데이터나 속성을 변경하는 한 모든 종속 View은 자동으로 업데이트됩니다. 마찬가지로 ControllerView를 변경할 때마다 View는 기본 Model에서 데이터를 가져옵니다.

View다시 그리기 및 메모리 누수는 인터뷰에서 자주 묻는 질문인 것 같습니다
1. View 새로고침 :

새로 고침이 필요한 곳에서는 handle.sendmessage를 사용하세요,handle.sendmessage를 사용하여 메시지를 보내, 그리고 handler 'sgetmessage 내부 실행 invaliate

🎜 또는 🎜🎜🎜postinvaliate.🎜🎜

2.GC메모리 누수
occurrence:
1.
database 커서가 닫히지 않았습니다
2 . view
의 최적화 문제---- - view 개체 생성을 줄이고 ,
contentview를 최대한 활용하고, 정적 클래스를 사용하여 처리를 최적화할 수 있습니다 getview 프로세스 /3.Bitmap객체를 사용하지 않을 때는 recycle()을 사용하여 메모리를 해제하세요4.activity생명주기 ~의 객체가 activity보다 큼 디버깅 방법
: DDMS==> HEAPSZIE==>dataobject==>[총 크기]

One 활동의 수명주기
two LetActivity 창으로 전환: Activity 속성 설정 배경 Activity
은 시스템 onSaveInstanceState에 의해 재활용됩니다.
four
부름과 부르심을 받는 것: 우리 메신저의 수명주기
- Intentone
및 기타 휴대폰 의 수명주기 플랫폼

Android의 애플리케이션과 동일합니다. 이는 우리가 작성하는 애플리케이션의 운명이 다른 사람(시스템)에 의해 제어된다는 것을 의미합니다. 우리 손에서는 변경할 수 없으며 배우고 적응할 수만 있습니다.

이러한 이유를 간단히 설명해보세요. 휴대폰이 ,어플리케이션을 실행 중일 때 전화나 문자 메시지가 수신되거나 전원이 공급되지 않을 수 있습니다. 우선적으로 서비스폰의 기본 기능으로 들어가세요. 게다가 시스템상 너무 많은 리소스를 점유하는 것을 허용하지 않습니다. 적어도 전화 기능,만 보장하면 리소스가 죽을 수도 있습니다. 부족하다. 집에 더 가까운 Activity의 기본 수명 주기는 다음 코드에 표시됩니다.

public class MyActivity extends Activity{
    protected void onCreate(Bundle savedInstanceState);
    protected void onStart();
    protected void onResume();
    protected void onPause();
    protected void onStop();
    protected void onDestroy();
}

Activity는 필요에 따라 다시 로드됩니다 이러한 메서드를 로드하려면 onCreate이 불가피합니다. Activity 정상 시작 프로세스 중에 호출되는 순서는 onCreate -> onStart ->onResume, Activity이 종료되면 순서는 onPause -> 이게 완전한 생애주기인데, 누군가 프로그램 실행 중에 전화가 왔는데, 이 프로그램은 어떻게 해야 합니까? 중단되었습니다. 일시 중지되었을 때 새 Activity가 전체 화면이면 다음과 같습니다. onPause->onStop , 재개되면 onStart->onResume , 이 애플리케이션을 방해하는 것이 Translucent Theme 또는 ActivityDialog 인 경우 onPause , 복구 시 이력서 . 시스템이 수행하는 작업과 다음 메서드에서 수행해야 하는 작업을 자세히 소개하겠습니다. onCreate:
여기서 인터페이스를 만들고 데이터 초기화 작업을 수행하세요
onStart:이 시점에서 사용자에게 표시되고 비대화형이 됩니다
onResume:
사용자와 대화형이 됩니다. (activity 스택 시스템에서 이러한 개인을 관리합니다. stacks Activity 상단에서 팝업 스택을 실행한 후 이전 Activity)
onPause:
to 이 단계는 표시되지만 대화형이 아닙니다. , 시스템이 CPU 를 소비하는 애니메이션 중지는 위의 설명에서 이미 알려져 있습니다. 현재로서는 프로그램의 우선순위가 중요하므로 일부 데이터는 여기에 저장되어야 합니다. 감소되어 시스템 탈퇴가 될 수 있습니다. 여기에 저장된 데이터는 onResume에서 읽어야 합니다. 참고: 다음 activity은 이 메서드가 완료될 때까지 기다리지 않기 때문에 이 메서드에서 작업을 수행하는 시간은 짧아야 합니다. 시작 onstop:
이 보이지 않게 되고 다음
activity에 의해 보호됩니다.onDestroy: 이것은 activity이 종료되기 전에 마지막으로 호출된 메소드입니다. 외부 클래스가 finish 메소드를 호출하거나 시스템이 공간을 절약하기 위해 일시적으로 종료했을 수 있습니다. isFinishing()을 사용하여 스레드에서 회전하는 Progress Dialog이 있는 경우 onDestroy O에서 취소하세요. 그렇다면, 스레드가 종료되면 Dialogcancel 메서드를 호출하면 예외가 발생합니다. onpause, onstop, ondestroy, 3 개 주에서는 프로그램의 정확성을 보장하기 위해 활동이 사망 할 수 있습니다. 사용자가 편집한 내용을 저장 매체에 저장하기 위한 지속성 계층 작업을 위한 코드를 onPause() 작성해야 합니다(일반적으로 은 모두 데이터베이스입니다). 실제 업무에서는 라이프 사이클의 변화로 인해 발생하는 문제가 많습니다. 예를 들어 애플리케이션에 새로운 스레드가 실행 중인데 이 시점에 중단되면 해당 스레드를 일시 중지하거나 종료하든 계속 유지해야 합니다 삭제냐 데이터 롤백이냐? Activity가 종료될 수 있으므로 스레드에 사용되는 변수 및 일부 인터페이스 요소에 주의해야 합니다. 일반적으로 저는 Android [Handler , 메시지] 멀티스레딩 및 인터페이스 상호작용 문제를 처리합니다. 이에 대해서는 나중에 이야기하도록 하겠습니다. 최근 이런 것들이 많이 유행하고 있기 때문에 마음을 정리한 후에 공유하겠습니다.

Let Activity을 창으로 설정하세요. Activity속성 설정

좀 더 편안하게 얘기하자,어떤 사람들은 휴대폰의 메인 인터페이스에 떠다니는 애플리케이션을 만들고 싶어 할 수도 있으니 매우 간단합니다. 설정만 하면 됩니다. it up Activity 테마는 AndroidManifest.android:theme= "@android:style/Theme.Dialog"android:theme="@android:style/Theme에서 정의할 수 있습니다. Dialog"이렇게 하면 애플리케이션이 대화 상자 형태로 팝업되거나 XML이 반투명해집니다.
[
Friendly 알림-.-]


유사한 속성
activity의 내용은 android.R.styleable 에서 찾을 수 있습니다.


AndroidManifestActivity
메서드에서 볼 수 있듯이 에 있는 모든 요소의 속성을 소개합니다. AndroidManifest. xml은 이 클래스를 참조할 수 있습니다 android.R.styleable

위는 속성 이름입니다. 구체적인 값은 android.R.style
에서 확인할 수 있습니다. 예: "@android: 스타일/ 테마 .dialog " 에 해당합니다. : 웃는 얼굴이 아닌 기사의 내용입니다), 설명 파일에서 사용할 수 있습니다 Hit ,클래스 정의와 설명의 대응 관계를 찾아보세요 파일을 제출하면 이해하게 될 것입니다. ㅋㅋㅋ 시스템: onSaveInstanceState

프로그램의 활동 A 가 다른 새로운 활동 B 를 적극적으로 또는 수동적으로 실행하면 A이 실행됩니다 Java코드
공개 void onsaveinstancestate (Bundle Outstate) {
super.onsaveinstancestate (outstate);
outstate.putlong ( "id", 1234567890);
}
public void onsaveinstancestate (Bentdle Outstate) {
B
bl 완료 후 A로 돌아가기, 현재 두 가지 상황이 있습니다. 하나는 A이 재활용되는 것이고, 다른 하나는 재활용되지 않고 로 돌아가는 것입니다. A을 받은 후 onCreate() 메소드를 다시 호출해야 합니다. 이번에는 onCreate() 여기에 매개변수 가져오기 saveInstanceState
🎜🎜이며, 복구되지 않은 항목은 여전히 ​​🎜🎜🎜onResume🎜🎜🎜 상태입니다. 🎜🎜🎜🎜saveInstanceState
Bundle 개체입니다. 기본적으로 시스템에서 관리하는 Map 개체로 이해할 수 있습니다. onCreate()에서 사용할 수 있는데, onCreate가 정상적으로 시작되면 존재하지 않으므로 사용 시 비어 있는지 확인해야 합니다.
java
code
if (savedinstancestate! = null) {
long id = savedinstancestate.getLong ( "id");
}

IF (savedInstancestate! = null) {
just 공식 Notepad
tutorial의 상황처럼 특정 note을 편집하다가 갑자기 중단되면 이 노트를 편집하세요. 기억하세요, 다시 일어났을 때 이 id에 따라 note을 꺼내면 프로그램이 더욱 완성도가 높아집니다. 이는 또한 애플리케이션이 무엇인가를 저장해야 하는지 여부에 따라 달라집니다. 예를 들어 인터페이스가 목록을 읽는 것이라면 특별히 아무것도 기억할 필요가 없습니다. 스크롤바의 위치 ...

부름과 부름을 받는 것: 우리의 메신저Intent

을 원합니다. Intent, Intent가 이 의도입니다. 애플리케이션 간 Intent 전화가 올 때마다 소통하며 전화하자. 전화가 오면 인텐트가 전송됩니다. 이것이 Android 아키텍처의 느슨한 결합의 핵심입니다. 예를 들어 클릭하려는 경우 구성요소의 재사용성을 크게 향상시킵니다. 누군가에게 전화를 걸 수 있는 애플리케이션 버튼은 매우 간단합니다. 먼저 코드를 살펴보세요.
Java
Code:
Intentintent = new Intent();
intent.setAction(Intent.ACTION_CALL) ;
intent.setData(Uri.parse("tel:"+ number));
startActivity(intent);
코드 복사
그런 의도를 던지면 시스템이 깨어납니다. 발신 전화를 걸려는 의도 전화 걸기. 연락처를 읽거나 문자 메시지를 보내거나 이메일을 보내려면 intent만 버리면 됩니다. 이 부분은 정말 잘 디자인되었습니다.
그런 다음 Intent누가 그를 받아들여야 하는지 시스템에 어떻게 알릴 수 있을까요? 일반적으로 Intent를 사용하는 방법은 두 가지가 있습니다. 첫 번째는 다음과 같이 코드를 수신하는 데 필요한 클래스를 직접 나타내는 것입니다:
Java
code
Intentintent = new Intent (this, MyActivity.class);
intent.getExtras().putString("id","1");
startActivity(intent);
Intentintent = new Intent(this,MyActivity.class);intent.getExtras( ).putString ("id","1");tartActivity(intent);
코드 복사
첫 번째 방법은 분명합니다. MyActivity를 수신자 , 로 직접 지정하고 일부 데이터를 MyActivity에 전달합니다. MyActivity 에서 getIntent()를 사용하여 이 intent 및 데이터를 가져올 수 있습니다.
두 번째 옵션은 AndroidMenifest Code에서 intentfilter 구성을 살펴보는 것입니다.

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:value="android.intent.action.EDIT" />
<action android:value="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:value="android.intent.action.EDIT" />
<action android:value="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
</intent-filter>

这里面配置用到了action, data, category这些东西,那么聪明的你一定想到intent里也会有这些东西,然后一匹配不就找到接收者了吗?action其实就是一个意图的字符串名称。
구성 파일은 이 Activity가 다양한 Action 을 받아들일 수 있음을 보여줍니다. 물론 프로그램 로직도 다릅니다 , 언급해 주세요 mimeType, ContentProvider에 정의되어 있습니다. ContentProvider 를 지정해야 합니다. 데이터를 허용하려면 다른 사람이 사용할 수 있습니다. 원리가 명확한지는 모르겠지만 요약하면 해당 인터페이스를 직접 new호출하지 않고 intent을 던져 시스템이 도와주도록 하세요. 해당 인터페이스를 호출하세요. 이는 매우 느슨하게 결합되어 있으며 라이프사이클이 시스템에 의해 관리된다는 원칙을 따릅니다. category가 무엇인지, Androidaction 등을 위해 미리 맞춤설정되어 있는지 알고 싶다면 공식 링크를 직접 방문하세요 Intentps: 시스템 응용 프로그램을 호출하는 방법을 알고 싶은 학생은 logcat을 자세히 살펴보고 프로그램을 실행할 때마다 와 같은 정보가 있는지 확인할 수 있습니다.

Starting activity: Intent {action=android.intent.action.MAINcategories={android.intent.category.LAUNCHER}flags=0x10200000comp={com.android.camera/com.android.camera.GalleryPicker} }

再对照一下Intent的一些set方法,就知道怎么调用咯,希望你喜欢:)

하나, listview어떻게 최적화하셨나요? ㅋㅋㅋ 3,
IPC 4 五, Android
우리가 디자인해야 하는 이유
4 그것들을 디자인하지 않고도 할 수 있습니까? 주로 MVC 패턴을 구현하기 위한 것이지만
java
에서 가장 어려운 모드이기도 합니다. 이 모드를 잘 할 수 있는 제품은 거의 없습니다. [Technicolor 인터뷰어] 이렇게 물었습니다])

식스 service주기 activity에 대해 어떻게 생각하는지 알려주세요 Android 전화 통화, , 연락처 등 애플리케이션에 대한 내부 이해 프레임워크 계층에는 많은 것들이 있으므로 더 많이 읽고 Android가 어떻게 수행되는지 익히는 것이 좋습니다. 애플리케이션 개발을 하든, 애플리케이션 프레임워크 계층 개발을 하든 매우 유익합니다.
모든 것은 프로젝트 경험에 관한 것이며, 직면한 어려움과 이를 해결한 방법을 강조합니다! 물론, 면접관은 때때로 이 지원서에서 어떤 모듈을 사용했는지, 실제로 수행했는지 여부를 보여주기 위해 몇 개의 수업을 사용했는지 등의 질문을 할 것입니다. 가끔 면접관들이 Android에 포함된 단위 테스트를 사용해 보셨나요? 어떻게 사용하시나요? 물론 저는 많은 회사와 인터뷰를 했는데, 그중 일부는 태블릿, 휴대폰, 디지털 TV를 만들고 일부는 erp 및 기타 클라이언트 등을 만들고 있습니다. 처음 세 회사의 경우 기본적으로 정말로 Android에 대한 모든 것을 바꾸고 싶다면, 정말로 Android을 하고 싶다면 모두가 아직 배울 것이 많습니다. 요약하자면 한마디로 면접관은 종류가 다양합니다. 면접을 보러 갈 때는 정신적으로 준비가 되어 있어야 하고, 탄탄한 기술적, 기초적 기반을 갖추고 있어야 합니다. 사람의 대화 능력도 매우 중요합니다. 간단히 말해서 표준 중국어는 아닙니다. 적어도 당신이 말하는 내용은 다른 사람들이 이해할 수 있어야 하고, 면접관에게 아주 철저하게 설명해야 합니다. get 제안받을 확률이 더 크고, 급여협상에도 유리합니다~~물론, 어느 회사 면접관이 저에게 기술 은 그렇지 않다고 말한 적이 있습니다. 돈은 여유가 있고 능력만 있으면 얼마든지 갚아 주십니다.

1. 보기를 새로 고치는 방법?
2. DDMS
TraceView의 차이점은 무엇인가요?
3. 내 활동
이 재활용되면 어떻게 해야 하나요?
4.
C 언어를 Java에 어떻게 도입하나요?
참조 답변 :
1.View
invalidate()postInvalidate()을 호출할 수 있습니다. 이 두 가지 방법은 새로고침
2 .DDMS
는 스레드, 스택 등의 정보를 볼 수 있는 프로그램 실행 뷰어입니다. TraceView는 프로그램 성능 분석기
3. 해야 할 일은
JNI 인터페이스
를 사용하여 구현할 수 있는 C 언어 프로그램을 호출하기 위해 또 다른 4.java을 만드는 것입니다.
위 답변들은 참고용일 뿐이고, 결국 제 개인 능력에는 한계가 있어서 잘못된 답변이 나올 수밖에 없겠네요 ㅎㅎ
...답변:
1. View
에는 시스템 새로고침이 적용됩니다(시스템 내부에는 이벤트를 모니터링하고, 비즈니스 처리를 수행하고, UI를 그리는 루프가 있습니다). postInvalidate() 시스템을 새로 고칩니다.
2.
(정말 모르겠어요)
3.
시스템에 의해 소멸된다면 Activity의 라이프사이클을 참고해주세요 , 즉 재활용은 새로운 start
4.
부터 JNI까지만 호출할 수 있습니다. "The Java Native Interface Programmer's Guide and Spec" 영문판을 읽고 sun 웹사이트에서 다운로드하는 것을 권장합니다.

위 내용은 바이두 안드로이드 면접 질문 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제