Android 개발은 구식이고 경력을 변경할 위험이 높습니다. Android 네이티브 개발을위한 방법은 어디입니까?

Android 개발 상태

모바일 개발 현황은 어떻습니까? 우리가 작성한 코드에서 단서를 찾을 수 있습니다. Android를 예로 들면 많은 대기업의 모바일 개발자가 작성한 가장 일반적인 코드는 다음과 같습니다.

LinearLayout layout = new LinearLayout();
layout.addView(xxxx);
...

또는 다음과 같을 수도 있습니다.

public class XXXView extends RelativeLayout {

    public XXXView(Context context) {
        this(context, null);
    }

    public XXXView(Context context,
            @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public XXXView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView();
    }

    private void initView() {
        LayoutInflater.from(getContext()).inflate(R.layout.xxxlayout, this, true);
        ...
    }

    public void setData(XXX xxx) {
      ...
    }
}

또는 xml 태그 -UI 개발에 대한 다양한 작업을 수행하십시오.

맞습니다, 이제 모바일 기술 스택은 더욱 성숙하고 완벽 해졌습니다. 비즈니스를 위해서는 대기업의 엔지니어조차도 UI 디스플레이 로직을 수행하고 있습니다. 대기업의 제품은 비교적 완성도가 높고 백엔드가 대부분의 비즈니스 로직을 제어합니다. 클라이언트가하는 일은 백엔드 데이터를 가져 와서 setText (xxx)를 통해 표시 한 다음 Boolean 값을 사용하는 것입니다. 보기가 표시되는지 또는 숨겨져 있는지 확인하기 위해 인터페이스에서 반환합니다.

많은 분들이 몇 년간 일을 했는데도 많이 나아지지 않았다는 말을 들었는데, 매일 코드를 쌓아 가고 있고, 몇 분만에 자신을 바꿀 수있는 새로운 졸업생을 찾을 수있어서 매우 걱정이됩니다. 몇 년 동안 일한 사람들의 경우, 자신이 조기에 교체되거나 제거되는 것을 막으려면 더 깊이 파고들 수있는 잠재력과 유망한 분야를 선택해야합니다.

위험한 변화

낮은 학습 비용이 비용이 없음을 의미하지는 않습니다.

프로그래밍이 어렵습니까? 솔직히 말해서 꽤 어렵습니다. 저는 기초가없는 대부분의 사람들을 위해 여기에 있습니다. 스스로 배울 수있는 천재와 위대한 신이 있다는 것을 배제하지 않습니다. 프로그래밍에 대한 많은 사람들의 인상은 영화에서 나옵니다. 실제로 프로그래머 친구가 있더라도 매일 컴퓨터 앞에서 그들이하는 일을 얻기가 어렵습니다. 키보드를 사용하여 문장을 입력하고 컴퓨터가 자동으로 작업을 시작하는 이유는 무엇입니까? 코드를 직접 작성하기 전에는 신체 감각이 없습니다. 인터레이스는 다른 산업의 기사 나 천상의 책을 읽는 것과 같이 산을 타는 것과 같으며 직업을 바꾸는 데 많은 시간이 걸립니다.

시작 장벽은 낮지 만 구직이 더 어렵다

이미 시멘트 믹서가 있지만 삽 사용법을 배워야합니까?
맞습니다. 프로그래밍의 장벽은 점점 낮아지고 있습니다. 과거에는 웹 사이트를 구축하려면 LAMP가 원 스톱이어야했지만 이제는 드래그 앤 드롭으로 만 생성하면됩니다. 미국은 모두를위한 프로그래밍을지지합니다. App Store에는 프로그래밍 교육 앱이 많이 있습니다. 자신 만의 프로그램을 개발할 수 있으며 모든 것이 매우 쉬워 보입니다. 하지만 습득하기가 쉬울수록 경쟁력이 낮아 지는데 왜 모두가 아는 일에 높은 급여를 지불해야합니까? "세계의 경이로움, 경이로움 및 비범 한 견해는 종종 위험하고 먼 곳에 있으며 인간은 거의 보이지 않습니다."

따라서 프로그램을 "학습"하는 것과 직업을 찾는 것 사이에는 차이가 있습니다.

다른 유형의 작업은 완전히 두 가지 경험 일 수 있습니다.

프로그래밍을 집 짓기와 비교하면 어떤 사람들은 벽돌을 옮기고 어떤 사람들은 시멘트를 섞고 어떤 사람들은 목공을합니다. 모두 육체 노동이지만 목수는 시멘트 노동자보다 더 우아하고 시멘트 노동자는 벽돌 노동자보다 쉬울 수 있습니다. (여기에 당신이 이해하는 한 모든 주관적인 은유가 있습니다.) 집이 클수록 분할이 더 세밀 해집니다. 집을 짓는 것이지만 모든 종류의 일이 당신에게 적합한 것은 아닙니다. 당신이 잘하는 것을 충분히 이해해야 만 판단 할 수 있습니다. 그리고 방향을 선택하면 방대한 양의 지식을 접하게 될 것입니다.이 지식은 여전히 ​​매일 업데이트되고 학습을 끝내지 못할 것입니다. 의욕이 있다면 "하나는 전문화하고 많은 사람은 강하다"는 것, 즉 약간을 알아야하고 핵심 경쟁력이 될 또 다른 방향이 있습니다.

다른 수준에서 정신력과 육 체력의 차이가 소비됩니다.

집을 짓는 예도 마찬가지입니다. 어떤 사람은 엔지니어가되고, 어떤 사람은 기획자가되고, 어떤 사람은 건축가가됩니다. 다른 사람들은 청사진을 그리고, 벽돌을 옮기고, 청사진을 그리는 동급생이 당신보다 더 많은 돈을 벌습니다. 업계 전문가들은 삶의 변덕 스러움을 겪고 "하수도 수리 및 섬유 파기"의 엄청난 실패를 경험했기 때문에 아키텍처를 구축 할 때 적절하게 대처할 수 있습니다. 전공생 (즉, 컴퓨터 과학을 졸업 한 사람)이든 컴퓨터 과학을 졸업 한 사람이든, 신입생은 약간의 미성숙 한 경험을 가지고 있으며 기초 작업부터 시작해야합니다 (모든 단계에서 비슷 함). 생명). 그리고 직업을 바꾼 대부분의 학생들은 일부 아웃소싱 회사에 지원하고 아웃소싱 회사에서 일할 수 있습니다. 그들은 핵심 기술에 접근하지 못할 가능성이 높고, 순전히 "수동"노동 만 할 수 있습니다.

경력 변화의 성공은 마음의 평화가 아닙니다

프로그래밍은 끝이 없습니다. 경력을 바꾸고 싶다면이를 인식해야합니다. 매일 끊임없는 새로운 기술이 등장하고 3 년 전에 만난 기술은 이제 완전히 제거되어 아무도 사용하지 않습니다. 그래서 제가이 기술에서 쌓은 경험은 전혀 쓸모가 없는데, 초보자들은이 기술에 대해 들어 본 적이 없지만 저와 같은 출발 선에 있습니다. 나는 다르게 배워야하고 그들에 의해 제거되지 않도록 그들보다 더 빨리 배워야합니다.

나이는 장애물이다

고압 · 고강도 운동으로 인해 신체가 따라 가지 못하는 것은 아니지만, 가볍게 일을했다고하더라도 특정 나이에 학습 속도가 빠르지 않을 가능성이 있습니다. 젊은이. 지난해 34 세 이상 직원 해고 소식이 나왔다. 지난 몇 년 동안 대학에서 국내 소프트웨어 공학 및 기타 컴퓨터 전공이 폭발하여 많은 신입생이 생겼다는 것은 말할 것도 없습니다. (여기 투카 오는이 전공을 개설 한 학교입니다. 많은 대학이 무책임합니다. 따라서 국가는 동시에 35 개의 소프트웨어 공학 학위를 폐지했으며, 이제는 점점 더 많은 사람들이 직업을 바꾸고, 기업은 더 낮은 비용으로 더 많은 잠재적 인 사람들을 모집 할 수 있으므로 노년 프로그래머를위한 탈출구가되었습니다. 문제.

위의 두 가지 요점은 우리 실무자들을 걱정하게합니다. 많은 사람들이 비슷한 나이에 직업을 바꾸고 여전히 직업을 바꾸고 있습니다. 그것은 또 다른 포위 된 도시입니다. 이제 첫 번째 프로그래머 배치는 40 대이며 평생 프로그래머로 일해 온 사람들이 있는지 여부에 달려 있습니다!

Android 고급 도로

그렇다면 Android 개발자로서 자신의 학습 경로를 어떻게 계획하고 중간 및 고급 수준으로 단계적으로 진행합니까?
① 건축가에게 필요한 기술

** 주요 기술 : ** 심층 Java 일반, 간단한 언어 설명, 동시 프로그래밍, 데이터 전송 및 직렬화, Java 가상 머신 원칙, 리플렉션 및 클래스 로딩, 동적 프록시, 효율적인 IO.

관련 학습 문서 :

②Android 고급 UI 및 FrameWork 소스 코드

** 주요 기술 : ** 고급 UI 프로모션, 프레임 워크 커널 분석, Android 구성 요소 커널, 데이터 지속성.

관련 학습 문서 :

③360 ° 전체 성능 조정

** 주요 기술 : ** 디자인 아이디어 및 코드 품질 최적화, 프로그램 성능 최적화, 개발 효율성 최적화

관련 학습 문서 :

④ 오픈 소스 프레임 워크 디자인 아이디어 해석

** 주요 기술 : ** 핫 수리 디자인, 구성 요소 화 된 프레임 워크 디자인, 이미지 로딩 프레임 워크, 네트워크 액세스 프레임 워크 디자인, RXJava 반응 형 프로그래밍 프레임 워크 디자인, IOC 아키텍처 디자인, Android 아키텍처 구성 요소 Jetpack

⑤ NDK 모듈 개발

** 주요 기술 : ** C 및 C ++, JNI 개발, 네이티브 개발 도구, Linux 프로그래밍, 저수준 이미지 처리, 오디오 및 비디오 개발

⑥ 건축가에게 필요한 기술

** 주요 기술 : ** 아키텍처 설계, MVP, MVP 및 MVVM, 모듈 식 및 구성 요소 화 된 아키텍처

⑦WeChat Mini 프로그램

** 주요 기술 : ** UI 개발, API 운영, WeChat 도킹

⑧ 하이브리드 개발 및 Flutter

** 주요 기술 : ** Flutter Framework 아키텍처 분석, Flutter 애플리케이션 시작 분석, Flutter 메시지 메커니즘, Flutter 플랫폼 채널 메커니즘, Flutter 비동기식 Future 메커니즘, Flutter Isolate 생성 프로세스, Flutter 렌더링 메커니즘, setState 업데이트 메커니즘, Flutter 애니메이션 원리.

위의 개요에는 학습하고 이해하는 데 도움이되는 해당 PDF 문서가 있습니다.

위의 콘텐츠는 정식 버전이 필요한 모든 사람, 친구와 무료로 공유 할 수 있습니다 . 모든 콘텐츠를 보려면 여기를 클릭하십시오 .

추천

출처blog.csdn.net/weixin_43901866/article/details/111857952