The Engineer's Alpha
blog / projects / 中文 /
2026
  • Android 16 & AVF: The Game of Thrones at EL2
    How Google is reclaiming mobile security control from ARM, Qualcomm, and Samsung through AVF and pKVM—the deepest power struggle in the mobile ecosystem.
2024
  • Add AAR file into build.gradle.kts
    Add AAR file into build.gradle.kts
  • Stanford CoreNLP Introduction
    Stanford CoreNLP Introduction
  • How to install multiple APKs on Android
    ### A Comprehensive Guide to Manually Installing Split APKs with ADB
2022
  • Android Moshi and Polymorphism
    Android Moshi and Polymorphism
  • Start your Application after system boots
    Start your Application after system boots
  • Use AWS CodeArtifact in your project
    ##### Why CodeArtifact
  • Something related to the System App
    #### Something related to the System Application
  • Import Android Framework Jar
    #### Import AOSP framework jar file
  • Gradle dependency management
    ### Gradle Dependency Management
  • Setup Gerrit Server for AOSP
    Setup Gerrit Server for AOSP
  • Jetpack Compose - Customize your layout
    Jetpack Compose - Customize your layout
2021
  • VOD Introduction
    VOD Introduction
  • How to build AOSP on M1
    How to build AOSP on M1
  • Android Emulator on Apple M1
    Android Emulator on Apple M1
2020
  • Tips for Android Canvas.drawText Function
    #### Why?
  • Introduction of the Chrome Custom Tabs
    ## Introduction of the Chrome Custom Tabs
  • Lost state issue of using `Navigation` on the Android platform
    #### What's the problem?
  • How to pair multiple airpods on your Mac?
    #### Why?
  • API Gateway ? Service Mesh ?
    API Gateway ? Service Mesh ?
  • Introduction of API Gateway
    An API gateway is a crucial component for web service that provides several functionalities to enhance our web service. Let's see what it is and what use cases it provides.
  • '[LeetCode] Two Sum'
    **Question:**
  • '[LeetCode] Logger Rate Limiter'
    **Question:**
  • New JDK14 enhancement for NullPointException
    #### JEP 358: Helpful NullPointerExceptions
  • 關於申請商業卡那檔事
    #### 身份問題
  • '[AMEX] AmericanExpress Centurion Card (Black Card)'
    '[AMEX] AmericanExpress Centurion Card (Black Card)'
  • '[LeetCode] Integer to English Words'
    **Question:** Convert a non-negative integer to its English words representation. Given input is guaranteed to be less than 2^31 - 1.
  • '[LeetCode] Shortest Word Distance III'
    **Question:** Given a list of words and two words *word1* and *word2*, return the shortest distance between these two words in the list.
  • '[LeetCode] Word Shortest Distance II'
    **Question:** Design a class which receives a list of words in the constructor, and implements a method that takes two words *word1* and *word2* and return the shortest distance between these two word
  • '[LeetCode] Shortest Word Distance'
    **Question:** Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.
  • 'MVC, MVP, and MVVM design patterns on Android'
    #### MVC design pattern
  • Shelter in place for COVID-19 in San Francisco
    #### 就地避難 (Shelter in place)
  • 'Android Coroutines - Suspend, Resume, and Dispatch'
    In the [Introduction](https://personaldevblog.firebaseapp.com/2019/12/27/Android-Coroutines-Introduction) section, we already have a big picture of the `Coroutines` feature, including what it is, how
  • 'Dagger Series: Something amazing about constructor injection'
    In Dagger, it provides another way to inject/provide resources by using `constructor injection.` The typical case is that we use `constructor injection` in a class to inject needed resources as class
2019
  • Android Coroutines - Introduction
    I recently read the source code of `Coroutines.` It's pretty fun, and I've learned a lot from the source code. I am going to share some I learned here. I would break the learning into several parts. I
  • Android Thread Model
    #### Process v.s Thread
  • 'Dagger Series: Elegantly handle your Activities and Fragments by AndroidInjector'
    #### The story
  • 'Dagger Series: How do you use it in your Modularization?'
    #### Story
  • Generic Programming in Golang
    In many programming languages such as `Java,` `Kotlin,` `Objective-C,` and `Swift,` they support the [Generic programming](https://en.wikipedia.org/w/index.php?title=Generic_programming&gettingStarted
  • Personal Blog by Golang
    #### Why
  • Github CI setting plus issue tracking system on YouTrack
    This note is for anyone who wants to set up the continuous integration environment on `Github.` The note includes adding a commit template when you send a PR (Pull Request) and also wants to combine t
  • Kotlin tricks
    Here are some interesting tips when you are using Kotlin. Let's take a look at something about `object,` `invoke operator,` and `destructuring.`
  • Cron Job on TypeScript
    Cron is a classic utility found on Linux and UNIX systems for running tasks at pre-determined times or intervals. These tasks are referred to as **Cron tasks** or **Cron jobs**. Use Cron to schedule a
  • Composition over the inheritance
    #### The Story
  • System loading test by using Artillery
    There are so many choices for doing a system loading test on backend side. Let's see the list below:
  • The difference between import from and import require in TypeScript
    You might sometimes see `import * from library` in the third-party library or some project, and in the meantime, you can also see this code `import something = require('library').` Would you wonder wh
  • Import path in TypeScript
    In the recent project, we've mentioned about one question:
  • Use ESLint and Prettier to format your code in TypeScript
    ## Use ESLint and Prettier to format your code in TypeScript
  • Moving in the U.S - the check list
    這篇主要是用來提醒自己, 在美國搬家要注意的相關事項. 畢竟還尚未成為美國公民之前, 在美國國內的搬家相關係法律還是需要遵守, 像是 [告知義務](https://www.uscis.gov/addresschange)
  • EQUIFAX Data Breach
    剛來美國信用記錄非常重要, 我還記得剛過來的時候, 因為沒有任何信用紀錄, 所以在申請信用卡的時候基本上都是被打槍, 只有極少數幾家不需要 SSN 不需要考慮你的信用紀錄的發卡行有提供申請的服務, 但會不會過還是不知道.
  • Introduction of Spinnaker
    #### Why Spinnaker?
  • Apple Park Visiting
    趁著老婆生日的機會, 全家往南邊跑, 除了慶生之外, 也順便去看看傳說中的 Apple Park. 不看不知道一看嚇一跳. Apple Park 真的有夠大, 超級大, 世界無敵大. 不禁感嘆: Apple 真有錢 QQ. 先來一點介紹跟比較圖.
  • AMEX 信用卡 Tips - 開卡馬上拿到卡號
    AMEX 是我覺得相當不錯的一家信用卡發行公司, 當申請某張信用卡通過的時候, 有機會可以快速拿到當下申請的信用卡卡號 (Instant Card Number). 根據很多網路上大大提供的資料, 是有可能在 instantly approved 的時候出現這個畫面.
  • Android Dynamic Feature Module (DFM)
    #### What's a DFM?
  • Quickly update App content without reinstall
    #### How does it work?
  • Convert a video clip to a Gif file
    I recently run into a problem that I would like to convert a video clip to a gif file cause I did the screen recording from my laptop, but the file size is too large (> 100MB) to upload to my blog. So
  • Pokemon Go Example by using Google Maps
    I was wondering how to do the map display just like Pokemon Go! Game does. Let's check how it looks from the below screenshot.
  • Android Studio Gradle Plugin 3.4.1 update
    The new Android Gradle plugin comes to a minor change and some updates for the version code to 3.4.1. Here are some behavior changes you should know.
  • 說好不再流淚
    ## 說好不再流淚
  • Dear Mom ...
    ## 自由自在的飛翔吧 ...
  • How Picasso gets the Context without parameter passing
    ## How Picasso gets the Context without parameter passing
  • San Mateo DMV Road Test (路考)
    5/1 勞動節在台灣的朋友放假的同時, 我終於迎來人生最重要的考驗之一 (是嗎?) - DMV 路考 (behine-the-wheel drive test). 話說本來在考完 筆試 (written test) 之後, 一直想找時間把所有的路考的東西整理一下. 本來我是不打算約 5/1 這麼近的時間, 剛考完筆試想要休息一下, 加上工作繁忙 ... blah blah (我是不會承認我拖延症復
  • Japan Town - The Northern California Cherry Blossom Festival
    ## 日本城櫻花節 (Japan Town - The Northern California Cherry Blossom Festival)
  • 美國汽車保險
    #### Why leasing/buying a car?
  • Android Hopping Animation
    ## Android Hopping Animation
2017
  • How to precisely jump to a specific time in AVPlayer
    When using [AVPlayer](https://developer.apple.com/reference/avfoundation/avplayer?language=objc) method - SeekToTime, I found there's an issue that I don't understand: the position of pointed time is
  • Android StrictMode for Debugging
    ## Android StrictMode for debugging
  • UIAlertViewController Text Alignment
    UIAlertViewController Text Alignment
  • MySQL - Error 1045 (28000)
    #### What happened?
  • DP-Pixel conversion on Android
    DP-Pixel conversion on Android
© 2026 • The Engineer's Alpha 🔬
Press Esc or click anywhere to close