I am about to enter my twenty-seventh year of life.

I think 2019, no matter how long it’s been, will be a very special year in my life.

In 2019, I started blogging seriously.

My first blog can be traced back to three or four years ago when I just graduated from college. I wrote about five or six articles on CSDN and then abandoned them. This year, I have really written more than 50 articles, except a few translation articles, all of which are original technical articles. I have synchronized all articles to this warehouse. The blog covers:

  • JDK source code parsing series
  • AOSP source code analysis series
  • Android decompiler series
  • Kotlin series

What’s the reason I keep blogging? It’s simple. Writing is a positive feedback process. Learn by yourself, summarize your output, and get feedback from your readers, which in turn forces you to learn. There were a few times when readers, in the spirit of breaking the pot and asking questions, left me so baffled that I had to dig deeper before giving an answer.

Nuggets is my most active blogging platform, simple and pure, as its Slogan says, “A community to help developers grow.” Indeed, the Nuggets also accompanied my growth this year.

This year’s target is one hundred thousand reading, there are still half a month, hard work, should be regarded as the completion of the target.

Every developer should get into the habit of blogging. Before in the group to see some students complain about a knowledge point did not see how long to forget, this I have a deep experience. I used to read some articles of AOSP and forgot them. I had no impression after two weeks. After hours of reading the source code and exporting an article, it’s hard to remember, really. Even if really forgotten, out of their own articles to review, I think it is certainly twice the result with half the effort.

In 2019, I started an open source project.

This year, in the second half of the year, I seriously maintained three warehouses. Respectively is:

  • wanandroid
  • AndroidUtilCodeKTX
  • Box

Wanandroid is my Jetpack MVVM experiment and will be doing a lot of new things on it. The current tech stack looks like this:

  • ViewModel + LiveData + Databinding completes the Jetpack MVVM infrastructure
  • Kotlin Coroutines is responsible for asynchronous tasks
  • Koin is responsible for the dependency notes

This project is quite popular. Inexplicably, I was recognized by people in different groups for several times (manual blushing), and thus I got to know some friends, including students and old birds. I have never experienced the atmosphere of discussing technology together for a long time.

Although not worthy of the title, but every time I read this kind of comment in the heart is very happy. Android itself as an open source operating system, as a developer should also feed back to the community when appropriate. Wanandroid will also continue to be updated with Jetpack.

AndroidUtilCodeKTX was an idea I had when I was using Blankj’s AndroidUtilCode. Blankj’s library was good, but it didn’t feel right to use Java in Kotlin, so I started writing it.

It is not a Kotlin translation of AndroidUtilCode, and I never intended it to be, more Kotlin’s way of writing it, without ripping off Blankj’s code, haha, big thanks to Blankj. At present, we have accumulated some tool classes, but the personal progress is still very slow. If you are interested, you can throw in PR and maintain together.

Box was born from Trinea’s development assistant. I don’t know if you have used it, but I’m curious about how the decompilation function is implemented. Of course, the development assistant is not open source. It turns out that we can just bring jADX here.

The positioning of Box is some bizarre functions, maybe one day when you see some functions, you will try to move over. Recently I saw the modified Apk feature of MT and I am ready to implement it. Of course, MT is not open source. As for the modification of Apk function, there is already a general idea. It will take some time to complete and open source will be released then.

Also want to do a packet capture function, global, not their own application of packet capture. For the time being, I only want to intercept all IP packets through Vpn, but the specific implementation logic is still to be considered, and the knowledge of protocol is also insufficient. I hope I can have the opportunity to work out this in 2020.

I would also like to express my special thanks to the students in the “Issue” section for their fault-finding, suggestions and solutions

Is it time consuming to blog and open source? The answer is yes. Most of my spare time is devoted to technology export and open source, and I don’t have a lot of time with two kids around. When I first started doing these things, my idea was to build a personal brand, and frankly, to be famous. However, after half a year, APPARENTLY I did not have red. But I persevered, and I realized the joy of open source. I think I’ll still enjoy it for the rest of my life.

No other, for love.

In 2019, I welcomed my daughter.

Although the topic is technically related, as a dad programmer, I have to enjoy my life.

2019, my little angel was born.

Want to say to wife above all here, laborious! Her morning sickness was so severe that nine months of pregnancy were a struggle. But luckily, it turned out the way we wanted it.

It is said that the daughter is the lover of his father’s previous life, and I want to beat him every day compared to the son, there are many different feelings in it. One wails, the other weeps. One is acting like a rabbit, the other is acting like a virgin. One wants to be a programmer, the other definitely doesn’t want to be a programming girl.

Looking at my two children every day makes me happy. As another kind of existence in my own life, this feeling, I think, can only be felt by myself.

I can’t wait for them to go to elementary school, high school, and even adults, and by the way, mom’s got drinks ready for your graduation party. And I thought that time could be slower, because every moment I experience now is something I will never experience again.

As the following my public account in the automatic reply of the sentence, “grasp the heart of the source, less stagnation in the matter.” I hope the two children can always uphold their hearts to do their own, mom and dad will always be your strong backing.

Set a Flag?

Flags seem to be a must-have for year-end reviews, but I’m reluctant to do it. I prefer to break it down into manageable milestones rather than goals for the whole year.

Finally, here are my mini goals for 2020:

  • Add 0 to the number of public accounts
  • Output at least one technical article per month
  • Continuously maintain open source projects and add new features (editing Apk and global capture)
  • Technically, depth is the main, breadth is complementary, continuous learning
  • Brush algorithm, brush algorithm, brush algorithm, important things say three times
  • .

That’s about it. 2020 is still half a month away, and I’ll probably come back to update (delete) the flag.

The last

Thanks to my children, I realize the responsibility of being a father.

Thank the wife, silently behind the pay, meticulous care of the family’s life.

Thanks to parents, a lifetime of work for their children.

Thanks to all my classmates, friends, family and programmers who have crossed paths with me. Every bit of progress I have made is also due to you.

Finally share a word, hard luck will not be bad!

2020, work together!

Article synchronization wechat public account: Bingxin said TM, focus on Java, Kotlin, Android original knowledge sharing.

More latest original articles, scan code to pay attention to me!

Denver annual essay | 2019 technical way with me The campaign is under way…