잘 돌아왔어요
좋아요 데크와 데크 파일 형식에 대해 얘기해보죠 또 Android 플랫폼에서의 일반적인 Java
인스턴스와 ARM 구조와 관련된 Java 인스턴스의 차이점도요
네 아주 높은 수준으로 접근합니다 그러니 걱정 마세요 프로세서 설명서 하나로 뛰어드는 일은
없습니다
높은 수준으로 접근해야 해요
좋아요
왼쪽엔 Android 응용 프로그램이 있습니다 Java로 작성된 거죠 안드로이드 응용 프로그램은
이 코드는 Java 가상 컴퓨터에 로드됩니다
Android 플랫폼에선 달빅 가상 컴퓨터와 관련돼 있죠
일반적인 Java와 이런 유형의 Java에는 차이점이 있죠
지금 당장 알아내고 싶은 게 이겁니다
오른쪽에 소스 코드가 있습니다
예를 들어 노트북에서 소스 코드를 실행하고 이걸 컴파일하면 새 파일을 생성하는데
메인.클래스 파일입니다 이 파일은 바이트 포맷으로 Java 소스 코드를 저장합니다
?
자 이제 이 접근법을 Android 스마트폰에 적용하면 이 장치에요 예를
들어 여기요 그럼 문제가 생기죠 이 Java 접근법은 리소스가 더 많이 필요하거든요
스마트폰의 CPU가 더 많은 자원을 필요로 하면 뜨거워질 겁니다
가열하면 장치에서 더 많은 자원을 쓰고 배터리도 급격히 소모하게 됩니다
이런 접근 방식은 배터리나 전원 장치에 효과가 없어요
그래서 팔의 구조는 좀 다르게 했어요
이건 달빅 실행 파일 형식이에요
네 그래서 동일한 Java 소스 코드를 갖고 오지만 다른 구조를 위해 컴파일해요 즉, ARM 구조를
위해서요 그러므로 다른 바이트 포맷으로 컴파일하기도 합니다
이제 이건 달빅 실행 가능한 포맷이고 클래스를 만들 거예요
텍스트 파일
네 이 애니메이션은 정말 멋지죠 그래서 그 클래스에는 Java 바이트코드가 없지만
달빅 실행 가능한 포맷이죠 이 포맷은 팔의 배터리 동력 장치에 적용하기 위해
고안되어서 배터리가 극적으로 닳지 않고 많은 자원을 요구하지도
않습니다
그래서 모든 스마트폰 디바이스에 암 CPU가 있는 겁니다
네 물론 이 구조에는 물론 단점이 있습니다 하지만 배터리 전원 장치는 이런
식으로 사용하면 아주 기발합니다
네 맞습니다 이게 x86과 arm의 차이점입니다 간단히 말해서 높은 수준의 접근을 할 수 있습니다
여기서 강조하고 싶은 건 여러분의 PC나 노트북이 모바일 장치와 다른 아키텍처에서
실행된다는 겁니다
그 이유는 스마트폰이 전압이나 전류 대신 배터리에
의존해야 하기 때문이죠
그래서 다른 구조로 디자인해야 했죠
그래서 Java 소스 코드도 약간 다르게 디자인돼야 했죠
좋아요
이제 이상한 X파일 형식이 있네요
이 오래된 X파일 형식은 뭐죠?
그렇게 복잡하진 않아요
단순히 최적화된 텍스트 파일 형식입니다
명령을 사용해 이 오래된 파일 형식을 텍스트 파일 형식으로 바꿀 수 있어요
그래서 반전 과정에서 전혀 영향을 받지 않아요
코덱스를 이 코덱스에서, 이 최적화된 텍스트 파일 형식을 텍스트 파일 형식으로 변환해야 합니다
그런 다음 기본 접근법으로 이 파일을 분석할 수 있죠
좋아요
네 이제 그것도 제가 마지막으로 지적하고 싶은 건데요 클래스와 관련된 겁니다 텍스트
파일이요
클래스, 텍스트 파일은 65,535개 메서드만 포함할 수 있어요
메서드를 더 작성하면 다중 검색으로 끝나죠
네 네 이 파일들을 보셨을 겁니다 클래스 텍스트가 있고 같은 디렉토리에
텍스트 파일 클래스가 있으니까요
달빅 실행 가능한 파일을 분리한 이유죠
방법이 너무 많아서 이렇게 생각할 수도 있어요
65,535개의 메서드를 한 앱에 쓴 사람이요?
네, 좀 우습네요
물론 라이브러리, 프레임워크와 Android 시스템에도 영향을 미치죠
네 한편 라이브러리를 가져오기 함으로써 여러 개의 텍스트 파일을 쉽게 갖게 됩니다 모든 라이브러리들은
많은 메서드를 갖고 있으니까요 사용하지 않더라도요
여기서 중요한 건 우리가 거꾸로 해서 응용 프로그램을 분석한다면 모든 클래스,
텍스트 파일을 분석해야 합니다 왜냐하면 필요한 정보가 클래스 텍스트인지
클래스 2점 텍스트인지 알 수 없으니까요 네 파일이 얼마나 많은지도요
그래서 전부 분석해야 해요
이제 왜 텍스트 파일이 여러 개인지 아시겠죠
상수를 가진 PC와 노트북의 차이점을 알아냈어요
스마트폰을 공급하는 것도 배터리 팩에 의존하는 것도요
이 차이는 장치의 작동 체계에도 영향을 미칩니다
그리고 클래스 텍스트도 단지 Java 바이트코드 포맷이라는 것을 배웠습니다 하지만 이 아키텍처, 이 플랫폼을
위해 최적화되었습니다 ,
그리고 왜 텍스트 파일이 여러 개인지도요 이 세션을 위해서는 이 정도만 이해하면
됩니다