2020'de ne öğrenmeli? Android beceri haritası yükselişte

Java temelleri

  • Java Object sınıfı yöntemleri
  • HashMap ilkesi, Karma çakışması, eşzamanlı toplama, iş parçacığı güvenli toplama ve uygulama ilkesi
  • HashMap ve HashTable arasındaki fark
  • HashCode işlevi, hashCode yönteminin aşırı yüklenmesi
  • ArrayList ve LinkList arasındaki fark ve bağlantı
  • GC mekanizması
  • Java yansıtma mekanizması, Java proxy modu
  • Java jenerikleri
  • Senkronize prensip
  • Uçucu uygulama ilkesi
  • Yöntem kilidi, nesne kilidi ve sınıf kilidinin anlamı ve farkı
  • İş parçacığı senkronizasyon yöntemleri: Senkronize, kilit, yeniden giriş Kilit analizi
  • Java kilit türleri: adil kilitler, iyimser kilitler, karşılıklı dışlama kilitleri, bölüm kilitleri, önyargı kilitleri, döndürme kilitleri vb.
  • ThreadLocal ilkesi ve kullanımı
  • ThreadPool'un kullanımı ve örnekleri
  • Wait () ve sleep () arasındaki fark

Java Advanced

  • Java sanal makinesi, Java işlemi, Java GC mekanizması (ulaşılabilirlik analiz yöntemi, referans sayma yöntemi)
  • Java nesnelerinin tam yaşam döngüsü
  • JVM bellek modeli
  • Süreçler arası iletişim, iş parçacıkları arası iletişim
  • JVM sınıfı yükleme mekanizması
  • Java başvuru türleri
  • Tasarım kalıpları: Ortak tasarım modellerine, özel, yansıma mekanizmalarına ve proxy modellerine ek olarak
  • HTTP protokolü ve HTTPS protokolü
  • Soket protokolü, Soket uzun bağlantı gerçekleştirir
  • TCP ve UDP protokolü
  • GET ve POST'un HTTP protokolünde somut olarak gerçekleştirilmesi
  • Serileştirme ve seriyi kaldırma
  • İş parçacığı havuzunun gerçekleşme ilkesi
  • Temel veritabanı bilgisi: çoklu tablo sorgusu, dizin, veritabanı işlemi

Veri yapısı ve algoritma

veri yapısı

  • Yığın ve sıra
  • Dizi ve bağlantılı liste, dinamik bir diziyi özelleştirin
  • Karma tablosu ve Karma çatışmalarının çözümü
  • İkili ağaç
  • B + B ağacı
  • Temel sıralama algoritması: önemli noktalar: hızlı sıralama, birleştirme sıralama, yığın sıralama (büyük kök yığın, küçük kök yığın)
  • Hızlı kuyruğun optimizasyonu
  • İkili arama ve değişken ikili arama
  • Huffman ağacı, kırmızı-siyah ağaç
  • String işlemi, string arama, KMP algoritması
  • Grafik BFS, DFS, prim, Dijkstra algoritması (üst düzey beceriler)
  • Klasik problem: büyük verilerin işlenmesi (1 milyar TOP K probleminden en büyük 10.000 sayısını bulmak için)

algoritma

  • Böl ve ele geçir algoritması
  • Dinamik program
  • nasılsın
  • Dal ve sınır

Android ile ilgili temel bilgiler

  • Uygulama yaşam döngüsü
  • Android Aktivite yaşam döngüsü
  • Android Service, IntentService, Service ve bileşenler arasında iletişim
  • Etkinlik onNewIntent
  • Parça tembel yükleme uygulaması, parametre aktarımı ve depolama
  • Ayrıntılı ContentProvider örneği
  • Yayın Alıcısı kullanım özeti
  • Android mesaj mekanizması
  • Bağlayıcı mekanizması, paylaşılan bellek uygulama prensibi
  • Android olay dağıtım mekanizması
  • Android multithreading uygulaması: Thread, HandlerThread, AsyncTask, IntentService, RxJava
  • ActivityThread nasıl çalışır?
  • İç içe sürgü uygulama prensibi
  • RecyclerView ve ListView (önbelleğe alma ilkesi, fark bağlantısı, avantajları ve dezavantajları)
  • Çizim ilkesini görüntüleyin, özel Görünüm, özel ViewGroup
  • Görünüm, SurfaceView ve TextureView
  • Looper.loop ana iş parçacığı neden sonsuz döngüye neden olmuyor?
  • ViewPager önbellek uygulaması
  • RequestLayout ,validate, postInvalidate'in farkı ve bağlantısı
  • AndroidP'nin yeni özellikleri
  • Android iki sanal makine
  • ADB yaygın olarak kullanılan komutlar
  • Varlık dizini ile res dizini arasındaki fark
  • Android SQLite ile başlarken

Android geliştirme gelişmiş

Giriş: Android üst düzey mühendisleri için işe alma gereksinimleri: 1. Android SDK'ya aşina, Android kullanıcı arayüzüne aşina, çeşitli Android hata ayıklama araçlarına aşina; 2. Zengin Android uygulama mimarisi becerisine sahip, Uygulamayı bağımsız olarak yönetebilen ve yapılandırabilen 3. Mobil Web geliştirme deneyimi; Çeşitli bileşik beceriler: iOS, H5, Python, .NET ve diğer geliştirme dillerine aşinalık tercih edilir; 4. Android performans optimizasyonu, güvenlik, yazılım takviyesi ve otomatik test hakkında derinlemesine bilgi sahibi olun; 5. Blog, açık kaynak projeleri

Android teknik sorunları

AIDL, Binder, çoklu süreç, Görünüm çizimi süreci, olay dağıtımı, mesaj kuyruğu vb. Bu tür bir bilgi, kendini kıdemli bir Android mühendisi olarak konumlandıranlar için bir zorunluluktur.Aynı zamanda, kıdemli ve genç mühendisleri belirlemek için bir mihenk taşıdır. Bunlar arasında, binder, Android sistemler arasındaki en önemli iletişim araçlarından biridir. Bu aşamada, Bir uygulamanın geliştirilmesi, birden çok işlemin kullanımından ayrılamaz. Konumlandırma ve itme gibi işlemler, ana işlemin bellek işlemini sağlamak için genellikle arka planda başlatılır; bu nedenle, birden çok işlemi makul bir şekilde kullanmak gerekir; görünümün çizimi Özel kontrolümüzün teorik temeli olan özel kontrol, yalnızca görünümün nasıl çizildiğine hakim olarak kişiselleştirilebilir; olay dağıtımı her zaman Android geliştirmedeki zorluklardan biri olmuştur ve bu konuda uzmanlaşılması gerekir; işleyici mekanizması da Android'de bir zorluktur, çünkü Asynctask, sistem başlangıcı ve Intentservice gibi temel katmanların tümü işleyiciler aracılığıyla uygulanır, bu nedenle işleyici mekanizmasına hakim olmak yalnızca gerçek savaş geliştirme yeteneklerinizi iyileştirmekle kalmaz, aynı zamanda sisteminizin tüm android sisteminin işleyişini anlamasını sağlar.

Android çerçeve katmanı kaynak kodu kontrolü

Android çerçeve katmanında birçok şey vardır. Aşağıdakiler, ileri düzey programcıların ustalaşması gereken şeylerdir:

  • Android paket yönetim mekanizması, temel PackageManagerService
  • Pencere yönetimi, temel WindowManagerService
  • Android Activity başlatma ve yönetimi, temel ActivityManagerService
  • Kök Etkinlik iş akışı
  • Bağlam ilişkilendirme sınıfı
  • Çeşitli ilkeler, klasik üçüncü taraf kitaplık kaynak kodu serisi

    • Custom LayoutManager, RecyclerView'da LayoutManager nasıl özelleştirilir
    • VLayout'un gerçekleştirme ilkesi, yani LayoutManager'ın nasıl özelleştirileceği
    • Kayma yükleme prensibi, önbelleğe alma şeması, LRU algoritması
    • Güçlendirmenin gerçekleştirilmesi ve ilkesi
    • OKHttp3 kullanımı, ağ isteklerinde Intercept
    • EventBus uygulama ilkesi
    • ButterKnife uygulama prensibi
    • RxJava uygulama prensibi
    • Hançer bağımlılık enjeksiyonu
    • Sıcak onarımın ilkeleri ve çözümleri
    • Bileşenleştirme ilkesi ve çözümü

    Android süreç iletişimi ve çok süreçli geliştirme

    Android çoklu süreç ve Uygulama ilişkisi

    Klasik çözüm: Çok süreçli iletişim çözümü: Andromeda

    Android sayfa kurtarma

    Android sayfa kurtarma, aşağıdaki iki yöntemi kullanır:

    onSaveInstanceState (Bundle outState)

    onRestoreInstanceState (Bundle SavedInstanceState)

    onSaveInstanceState: Bu yöntem, Activity sistem tarafından kolayca yok edildiğinde tetiklenir. Özellikle

  • Kullanıcı Ana Sayfa düğmesini tıklar
  • Kullanıcı, diğer uygulamalara geçmek için Ana Sayfa düğmesini tıklar
  • Ek işlemler için bekleyen bir çağrı var
  • Karma geliştirme ve Android WebView uygulaması

    Hibrit geliştirmeyle ilgili bilgi noktaları temel olarak şunları içerir:

  • APP, url'yi yüklemek için WebView'ı çağırıyor
  • WebView paketinde uzmanlaşın, tüm WebSettings yapılandırmasını anlayın, ana WebViewClient, WebChromeClient
  • WebView ve Native arasındaki iki yönlü iletişim mekanizmasında ustalaşın ve iki yönlü iletişim ara yazılımını tek başına kapsülleyin
  • WebView paketlemesi için lütfen şuraya bakın: GitHub: AgentWeb

    İletişim ara yazılımı ilkesinin anlaşılması: GitHub: web ilerlemesi

    Gradle, otomatik derleme, sürekli entegrasyonla ilgili

    Android sistemi

    Android Studio derleme süreci

    Kullanılan derleme araçları: aapt, aidl, Java Compiler, dex, zipalign

    Ana adımların açıklaması:

  • Res kaynak dosyalarını aapt aracılığıyla paketleyerek R.java, resources.arsc ve res dosyaları (res / raw ve pic gibi ikili ve ikili olmayan dosyalar aynı kalır)
  • .Aidl dosyalarını işleyin ve ilgili Java arayüz dosyalarını oluşturun
  • .Class dosyaları oluşturmak için R.java, Java arabirim dosyaları ve Java kaynak dosyalarını Java Compiler aracılığıyla derleyin
  • Dex komutu aracılığıyla, üçüncü taraf kitaplığındaki .class dosyası ve .class dosyası, classes.dex'i oluşturmak için işlenir.
  • Aapt tarafından oluşturulan resource.arsc ve res dosyalarını, varlık dosyalarını ve sınıfları paketlemek için apkbuilder aracını kullanın.
  • Yukarıdaki apk'de hata ayıklamak veya yayınlamak için Jarsigner aracını kullanın
  • İmzalı apk'yi hizalamak için zipalign aracını kullanın.
  • Uygulama önyükleme yükleme işlemi

    Android Uygulama işleminin Android sanal makine korumalı alan ilkesi

    Android mimarisi

    Android kaynak kodundaki en önemli üç kategori: ActivityManagerService / PackageManagerService / View. Kaynak kodun bu bölümünü hafta sonu okumanız önerilir. Kaynak kodunu okumak, gelecekte kendi kodumuzu tasarlama ve yapılandırma becerimizi geliştirebilir ve ayrıca en alttan anlayabilir. Tüm android sisteminin çalışma prensibi, ana iş parçacığının mesaj döngüsü gibi diğer şeyler, ana iş parçacığının süreçler boyunca AMS ile nasıl etkileşim kurduğu, SystemServer sürecindeki çeşitli hizmetlerin çalışma yöntemleri ve AsyncTask'ın çalışma prensibi. Bu bilgi aynı zamanda bir Android kıdemli geliştirme mühendisi olarak da uzmanlaşmalıdır. Gün boyu kullanıcı arayüzü ile dört ana bileşen arasındaki etkileşime giremezsiniz. Android'in bazı sorunlarını daha yüksek bir perspektiften ele almalısınız.

    Referans materyali: Mobil mimari hakkındaki düşüncelerim

    • MVC deseni
    • MVP modu
    • MVVM modu
    • TEMİZ modu
    • Bileşen geliştirme
    • Çapraz platform geliştirme: Flutter, ReactNative (RN gelecekte sarı olacak, sadece anlayın)

    Android optimizasyonu

    Mobil geliştirme çevre birimi

    Sunucu geliştirme ile ilgili

    • SpringBoot teknolojisi
    • Dinlendirici API geliştirme
    • Ağ protokolü anlayışı: TCP / IP, HTTP / HTTPS, OSI yedi katmanlı protokol
    • Yetkilendirme ve kimlik doğrulama protokolü: OAuth2.0 vb.
    • Temel veritabanı teknolojisi
    • Veri önbelleğe alma teknolojisi: Memcached, Redis, Web önbelleğe alma ilkesi
    • Mesaj kuyruğu teknolojisi
    • İzleme ve günlük analizi teknolojisi

    Ön uç geliştirme ile ilgili

    Çok sayıda ön uç geliştirme bilgisi var ve çerçeveler birbiri ardına ortaya çıkıyor, ancak temel şeyler yalnızca aşağıdakiler.

    • Çekirdek gerekir : HTML, CSS, JavaScript
    • Başlangıç : Tarayıcı uyumluluğu, özel kullanıcı arayüzü ve animasyon
    • Orta düzey beceriler : Çerçeveler, şu anda çekirdek olarak vue.js ve react.js ile sonsuz bir şekilde ortaya çıkıyor
    • İşbirlikçi geliştirme becerileri Paket yönetimi, modülerleştirme, npm kullanan araçlar, web paketi vb.
    • Gelişmiş beceriler Çerçeve ilkesinin kaynak kodu üzerine araştırma

    Çeşitli araçlar geliştirin ve hata ayıklayın

    • Performans analiz aracı: Memory Monitor
    • Performans izleme ve yöntem yürütme analizi: TraceView
    • Analizi görüntüleyin: Hiyerarşi Görüntüleyicisi
    • Tersine mühendislik Android Apk dosyaları için ApkTool-tool
    • Lint- Android lint aracı statik bir kod analiz aracıdır
    • Android .dex ve java .class dosyalarını kullanmak için Dex2Jar aracı

    Sonunda

    Aslında programcılar için öğrenmesi gereken çok fazla bilgi içeriği ve teknoloji var.Çevre tarafından yok edilmek istemiyorsan kendini sürekli geliştirmelisin, çevreye uyum sağlamak bize her zaman değil, çevreye uyum sağlamaktır!

    Birçok genç ve orta düzey Android mühendisi için, becerilerini geliştirmek istiyorlarsa, genellikle kendi kendilerine büyürler.Sistematik olmayan öğrenme etkisi, verimsiz, uzun ve çaresizdir. Umarım bu mimari teknolojileri Android geliştirme arkadaşlarına referans olarak kullanılabilir ve sapmalardan kaçınılabilir.Bu makalenin odak noktası kazanıp büyüyüp gelişmediğinizdir ve geri kalanı önemli değildir. Okuyucular bunu akıllarında tutabilirler umarım.

    Son olarak, teknik iyileştirme maaşında niteliksel bir sıçrama elde etmek için yüksek bir maaş almak istiyorum. En hızlı yol, birinin sizi birlikte analiz etmeye götürebilmesi, böylece öğrenmenin en verimli olması, bu nedenle herkesin orta ve üst seviyeye sorunsuz bir şekilde ilerlemesi için mimar, bunu herkese özel olarak hazırladım. Ana öğrenim için kaynak kodu ve çerçeve videoları gibi bir dizi yüksek kaliteli Android mimar öğreticisi , Maaşınızın öğrendikten sonra bir üst seviyeye çıkmasını sağlamak.

    Bir öğrenme rotanız olduğunda, ne öğreneceğinizi ve gelecekte nasıl gideceğinizi bildiğinizde, çok fazla teori görürseniz pratik yapmalısınız.

    İşte bugün sizinle paylaşacağımız bazı özel kuru ürünler:

    [Android geliştirmeyle ilgili temel bilgilerle ilgili notlar]

    [Android zihin haritası (beceri ağacı)]

    [Android temel ileri teknoloji PDF belgesi, BAT görüşmesindeki gerçek soruların analizi]

    [Android Advanced Architecture Video Öğrenme Kaynakları]

    Android Tanıtım Videosu alıp öğrendikten sonra, daha da güçlü hale geliyor! BATJ fabrikasına girin ve benzeri (hazırlık)! Günümüzde İnternetin soğuk olduğu söyleniyor. Aslında, yanlış arabaya bindiğinizden ve daha az (beceri) giydiğinizden başka bir şey değil. Doğru arabaya binerseniz ve kendi teknik yeteneğiniz yeterince güçlüyse, şirketin değişim maliyeti yüksek olacaktır. Sadece son iş Curd'u ortadan kaldırmak için! Günümüzde piyasada genç programcılar akınına uğramaktadır. Bu eğitim seti 1-6 yaş arası Android geliştirme mühendislerine yöneliktir. Darboğaz dönemindedirler. Gelecek yıl maaş artışlarını aşmak isteyenler, ileri düzey Android orta ve kıdemli, mimarlar daha da önemlidir Sudaki bir balık gibi, çabuk alın!

    [Android gelişmiş öğrenme videosu], [Android mülakat hilelerinin tam seti PDF], [Android geliştirme temel bilgi notları] özel mesajla [Android] ücretsiz olarak elde edilebilir!

    Mobil programcıların iş değiştirmeleri ve mülakat başarı oranını% 80 artırmaları için mülakat sorularına nasıl hazırlanılır?
    önceki
    Android mülakat deneyimi için gerekli beceri rezervinin detaylı açıklaması, teklifi aldı
    Sonraki
    Teknik yön konusunda kafanız mı karıştı? Kıdemli mobil geliştiriciler, Android geliştirmenin gelecekteki yönü hakkında konuşuyor
    Mülakat ve mülakat soruları öncesindeki Android mülakat engellerini ortadan kaldırın.
    Bu, üst düzey üreticilerin Android mühendisleri için gerekli beceriler sistemi + öğrenme rotası koleksiyonudur
    Ayrıcalıklı günlük Sırbistan'da Çinli uzmanlar sadece tavsiyelerle ilgilenmiyor
    Wuhan'da havai fişekler var
    Xi Jinping, çok kısa bir süre içinde özel bir zirvede Çin'in
    Güncel Olaylar HaberleriXi Jinping bu özel zirveye katıldı ve "salgın" Çin politikasına karşı küresel bir savaş önerdi
    @ Üniversite mezunları, bu önlemler iş bulmanıza yardımcı olur
    "Nasıl göründüğünüzü hatırlamak istiyorum" "Bulut Grubu Fotoğrafı" afişlerinin ilk sayısı internette çok popüler
    Ham petrol hızla düştükten sonra, ayda 75 milyarlık büyük bir kayıp yaşadı. "İki varil petrolün" maliyeti ne kadar düşükse, kayıp o kadar fazla?
    Canlı yayın endüstrisindeki yeteneklere olan talep% 132 arttı.
    Ortalama aylık maaş bu baharda yaklaşık 10.000 yuan, altına hücum canlı yayın endüstrisini deneyin
    To Top