{"id":1032,"date":"2026-09-04T10:02:28","date_gmt":"2026-09-04T10:02:28","guid":{"rendered":"https:\/\/boochlin.com\/?page_id=1032"},"modified":"2026-09-04T10:16:29","modified_gmt":"2026-09-04T10:16:29","slug":"blog","status":"publish","type":"page","link":"https:\/\/boochlin.com\/?page_id=1032","title":{"rendered":"Blog \u7cfb\u5217\u6587\u7ae0\u5c0e\u89bd"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Something Record &#8211; \u90e8\u843d\u683c\u5168\u7cfb\u5217\u6587\u7ae0\u5c0e\u89bd\u76ee\u9304<\/h2>\n\n\n\n<p>\u672c\u5c0e\u89bd\u76ee\u9304\u5c07\u672c\u7ad9\u81ea 2015 \u5e74\u81f3\u4eca\u767c\u5e03\u7684 80 \u7bc7\u6b63\u5f0f\u6280\u8853\u6587\u7ae0\u8207 12 \u7bc7\u6df1\u5165\u8349\u7a3f\uff0c\u4f9d<strong>\u6280\u8853\u6df1\u5ea6\u3001\u7cfb\u7d71\u6f14\u9032\u8207\u6a21\u7d44\u908a\u754c<\/strong>\u7cbe\u7d30\u62c6\u89e3\u70ba\u5341\u5927\u5c08\u984c\uff0c\u4f9b\u540c\u884c\u5c08\u5bb6\u3001\u9762\u8a66\u8907\u76e4\u8207\u7cfb\u7d71\u5316\u67e5\u95b1\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e00\u3001 \u908a\u7de3 AI \u8207\u4eba\u81c9\u8fa8\u8b58\u786c\u6838\u5be6\u6230\uff0817 \u7bc7\uff09<\/h2>\n\n\n\n<p>\u8a18\u9304\u5728\u767e\u5143\u7d1a\u9ad8\u901a\u4f4e\u968e\u6676\u7247\uff08QM215 4 \u9846\u5f31\u96de A53\uff09\u3001\u6975\u5ea6\u5331\u4e4f\u8a18\u61b6\u9ad4\u74b0\u5883\u4e0b\u69a8\u4e7e\u786c\u9ad4\u6975\u9650\u7684\u5b8c\u6574\u5de5\u7a0b\u5be6\u9304\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u968e\u6bb5 1\uff1a\u786c\u9ad4\u74f6\u9838\u91cf\u6e2c\u8207\u7cfb\u7d71\u6e1b\u78c5<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=401\">00 \u7bc7\uff1a\u5230\u5e95\u6709\u591a\u721b\uff1f\u7b97\u529b\u6df1\u6df5\u8207\u786c\u9ad4\u73fe\u72c0\u8a55\u4f30<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=461\">01 \u7bc7\uff1a\u8a55\u4f30\u7b2c\u4e00\uff1a\u9078\u578b\u8003\u91cf\u8207\u786c\u9ad4\u74f6\u9838\u5206\u6790<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=416\">02 \u7bc7\uff1a\u8a18\u61b6\u9ad4\u512a\u5316\uff1a\u7121\u7528\u7cfb\u7d71\u670d\u52d9\u5fb9\u5e95\u5254\u9664<\/a><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u968e\u6bb5 2\uff1a\u5e95\u5c64\u8a18\u61b6\u9ad4\u6297\u58d3\u3001\u9632\u7206\u8207\u6392\u7a0b\u5b88\u8b77<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=418\">03 \u7bc7\uff1a\u7cfb\u7d71\u512a\u5316\uff1aZRAM, SWAP, KSM \u64f4\u5f35\u8a18\u61b6\u9ad4\u6700\u5927\u503c<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=431\">04 \u7bc7\uff1a\u8a18\u61b6\u9ad4\u63a7\u5834\u5e2b\uff1aLMKD \u7b56\u7565\u8207\u9632 OOM \u5be6\u6230<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=453\">05 \u7bc7\uff1aGC \u662f\u552f\u4e00\u6703\u95dc\u5fc3\u4f60 OOM \u7684\u597d\u4eba<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=912\">06 \u7bc7\uff1a\u4e09\u8def\u9ad8\u983b\u5f71\u50cf\u6d41\uff0c\u4e09\u500d\u84cb\u4e9e\uff0c\u8d95\u5feb GC<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=895\">07 \u7bc7\uff1a\u5b88\u8b77\u9032\u7a0b\uff1a\u7269\u7406\u4e16\u754c\u9700\u8981 watchdog<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=933\">\u88dc\u5145\u7bc7\uff1aGC Thrashing \u601d\u8def\u88dc\u5145<\/a><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u968e\u6bb5 3\uff1a\u5f71\u50cf\u6f14\u7b97\u6cd5\u8207\u7570\u8cea\u904b\u7b97\u6975\u9650\u69a8\u6c41<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=952\">08 \u7bc7\uff1aYUV 420 888 \u9084\u80fd\u600e\u6a23\u52a0\u901f\uff1aQFastCV \u5be6\u6230<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=943\">09 \u7bc7\uff1a\u5144\u5f1f\u9f4a\u5fc3\uff0c\u8edf\u786c\u517c\u65bd\uff1aARM Compute Lib (ACL)<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=1006\">\u756a\u5916\u7bc7\uff1a\u5f9e 50ms \u5230 3ms\uff1aARM NEON\u3001FastCV \u8207\u8a18\u61b6\u9ad4\u6975\u9650\u69a8\u6c41\u6307\u5357<\/a><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u968e\u6bb5 4\uff1a\u96d9\u76ee 3D \u8996\u89ba\u8207\u6df1\u5ea6\u611f\u77e5<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=968\">10 \u7bc7\uff1a\u96d9\u93e1\u982d\u7684\u6642\u7a7a\u4fee\u7f85\u5834\uff1aRGB \u8207 ToF \u540c\u6b65<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=997\">11 \u7bc7\uff1aToF RAW12 \u8f49 3D \u9ede\u96f2<\/a><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u968e\u6bb5 5\uff1a\u5de5\u63a7\u7269\u806f\u7db2\u9577\u9023\u7dda\u3001\u4e32\u6d41\u8207\u8fd1\u5834\u914d\u7db2<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=1010\">12 \u7bc7\uff1a\u8aaa\u5230\u5e95\u9084\u662f\u4e00\u53f0 IOT\uff1aWebSocket \u7bc7<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=1015\">13 \u7bc7\uff1a\u70ba\u4e86\u5e7e\u4e4e\u4e0d\u6703\u7528\u5230\u7684\u529f\u80fd\u9700\u8981\u5927\u6539\u7279\u6539\u7684 WebRTC \u8996\u8a0a\u5c0d\u8b1b<\/a><\/li>\n\n\n<li><strong>14 \u7bc7\uff1a\u9580\u7981\u6a5f\u7576 BLE Peripheral \u7684\u73fe\u5834\u8e29\u5751\u8a18\uff08\u5373\u5c07\u767c\u5e03\uff09<\/strong><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u3001 Jetpack Compose \u6df1\u5ea6\u539f\u7406\u8207\u6548\u80fd\u8abf\u6821\uff084 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=650\">\u6e32\u67d3\u7ba1\u7dda\uff1aCompose \u4e09\u968e\u6bb5\u6e32\u67d3\u7ba1\u7dda\u5256\u6790<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=713\">\u72c0\u614b\u884d\u751f\uff1aJetpack Compose \u4f55\u6642\u8a72\u7528 derivedStateOf\uff1f<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=820\">\u91cd\u7d44\u9632\u8b77\uff1a@Immutable @Stable \u5982\u679c immutableList \u5167\u5305\u542b list \u6703\u9020\u6210 recomposition \u55ce\uff1f<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=653\">\u7e6a\u88fd\u512a\u5316\uff1aModifier \u6548\u80fd Draw \u5565\u6bd4\u8f03\u597d\uff1adrawBehind, drawWithContent, drawWithCache<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e09\u3001 Kotlin \u8a9e\u8a00\u6df1\u6c34\u5340\u8207\u975e\u540c\u6b65\u4f75\u767c\u63a7\u5236\uff087 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=667\">\u4f75\u767c\u6982\u5ff5\uff1aThread \u548c Coroutine \u7684\u7406\u89e3\u8207\u5207\u63db\u6210\u672c<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=649\">\u6642\u5e8f\u9632\u6296\uff1aKotlin \u5982\u4f55\u9810\u9632 Launch \u9023\u767c\uff0c\u641c\u5c0b\u4efb\u52d9\u9632\u6296\u9632\u7af6\u614b<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=655\">\u5167\u806f\u6a5f\u5236\uff1ainline, noinline, crossinline\uff1a\u5b58\u5728\u5373\u5408\u7406<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=778\">\u5ef6\u9072\u521d\u59cb\u5316\uff1alateinit vs lazy \u5e95\u5c64\u5be6\u73fe\u5dee\u7570<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=765\">\u5efa\u69cb\u9806\u5e8f\uff1aDifference between constructors and init in kotlin<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=639\">\u5c6c\u6027\u9677\u9631\uff1akotlin init \u524d\u521d\u59cb\u5316\u5c6c\u6027\u6703\u767c\u751f\u5565\u4e8b<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=632\">Gradle \u4f9d\u8cf4\uff1aid(&#8220;org.kotlin.xxxx&#8221;) version &#8220;2.1.0&#8221; apply false \u9019\u4e0d\u8981\u4f60\u9084\u7279\u5730\u5beb\u4e0a\u53bb\u554a\uff1f<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u56db\u3001 \u73fe\u4ee3 Android \u67b6\u69cb\u8a2d\u8a08\u8207\u4f9d\u8cf4\u6ce8\u5165\uff087 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=634\">\u7bc4\u7587\u5283\u5206\uff1aviewModelScope vs rememberCoroutineScope \u5176\u5be6\u662f SOC \u8077\u8cac\u5206\u96e2<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=672\">\u53d6\u6d88\u6a5f\u5236\uff1aSupervisorJob \u4e0d\u5c31\u662f viewModelScope \u55ce\uff1f<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=802\">\u4f9d\u8cf4\u6ce8\u5165\uff1aHilt \u6307\u5357 \u7d44\u5167\u5206\u4eab<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=636\">\u5be6\u4f8b\u5de5\u5ee0\uff1a\u9ebb\u7169 ViewModelProvider.Factory \u4f60\u4e86\uff0c\u56e0\u70ba\u7cfb\u7d71\u4e0d\u8b93\u6211\u76f4\u63a5 new \u4e00\u500b ViewModel<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=624\">\u9810\u8a2d\u53c3\u6578\u9677\u9631\uff1afun GameScreen(gameViewModel = GameViewModel()) \u9019\u6a23\u5beb\u6709\u5565\u554f\u984c\uff1f<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=783\">\u67b6\u69cb\u908a\u754c\uff1ahandle all repository operation that out of ComposableViewModel scope<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=641\">\u5be6\u4f8b\u6ce8\u5165\uff1aCreationExtras.inventoryApplication() \u9019\u6709\u9ede\u8df3<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e94\u3001 Android \u7cfb\u7d71\u6838\u5fc3\u539f\u7406\u8207 Framework \u539f\u59cb\u78bc\u63a2\u79d8\uff087 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=1022\">\u57f7\u884c\u7dd2\u6c60\u539f\u7f6a\uff1a\u8aaa\u5230\u5e95\u6c92\u6709\u5410\u69fd\u4ee5\u524d\u81ea\u5df1\u5beb\u7684 code \u4ee3\u8868\u4f60\u6c92\u9032\u6b65 &#8211; ThreadPoolManager \u7684\u539f\u7f6a<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=115\">\u57f7\u884c\u7dd2\u547d\u540d\uff1aNaming threads and thread pools of ExecutorService<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=44\">\u904b\u884c\u6642\u66ff\u63db\uff1aAndroid runtime resource overlay (RRO)<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=41\">\u6c99\u76d2\u9694\u96e2\uff1aAndroid \u5be6\u4f5c datacontrol \u5206\u96e2 \u2013 createPackageContext()<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=75\">\u7cfb\u7d71\u555f\u52d5\uff1aAndroid home screen life cycle<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=122\">\u53cd\u5c04\u9ed1\u9b54\u6cd5\uff1aJava reflection in Android \uff0d fast scroll bar in list view dynamic load apk<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=180\">\u7cfb\u7d71\u6f14\u9032\uff1aAndroid Nougat introduction (\u4e00)<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u516d\u3001 \u6548\u80fd\u8a3a\u65b7\u3001\u9664\u932f\u5de5\u5177\u8207 UI \u6e32\u67d3\u6392\u969c\uff0810 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=51\">\u6548\u80fd\u6aa2\u6e2c\uff1aAnalyzing UI Performance with Systrace<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=40\">\u8a3a\u65b7\u5de5\u5177\uff1aChrome dev tool for android \u2013 stetho<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=74\">\u8de8\u9032\u7a0b\u610f\u5716\uff1aAndroid Intents with Chrome<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=772\">\u5143\u4ef6\u901a\u8a0a\uff1aCommunicate with fragments<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=254\">\u69cb\u9020\u5730\u96f7\uff1aAndroid issue \u2013 Avoid non-default constructors in fragments<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=263\">\u4f48\u5c40\u885d\u7a81\uff1aAndroid issue \u2013 UI \u4f48\u5c40\u88ab\u9375\u76e4\u64cb\u4f4f<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=169\">\u6efe\u52d5\u5de2\u72c0\uff1aHow to use RecyclerView inside NestedScrollView<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=262\">\u4ee3\u78bc\u6df7\u6dc6\uff1aAndroid AppIntro Proguard issue<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=55\">\u672c\u5730\u76f8\u4f9d\uff1aAndroid Local build &#8211; use third parity lib<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=46\">\u76f8\u5bb9\u6027\u6e2c\u8a66\uff1aAndroid CTS Fail \u2013 cant remove external folder<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e03\u3001 \u76f8\u6a5f HAL \u8207\u591a\u5a92\u9ad4\u9a45\u52d5\u6846\u67b6\uff088 \u7bc7\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Android Camera \u6846\u67b6\u6f14\u9032<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=20\">Android Camera analyze (\u4e00) \u2013 Camera 1 Architecture<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=27\">Android Camera analyze (\u4e8c) \u2013 Camera 2 Introduction<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=30\">Android Camera analyze (\u4e09) \u2013 How to create Camera 2<\/a><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">AOSP \u539f\u751f FMRadio \u6846\u67b6\u62c6\u89e3<\/h3>\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=8\">FMRadio \u958b\u767c\u7b46\u8a18\uff08\u4e00\uff09- \u6982\u8ad6<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=5\">FMRadio \u958b\u767c\u7b46\u8a18\uff08\u4e8c\uff09- FMRadioMain<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=13\">FMRadio \u958b\u767c\u7b46\u8a18\uff08\u4e09\uff09- FMRadioService<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=14\">FMRadio \u958b\u767c\u7b46\u8a18\uff08\u56db\uff09- AlterActivity<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=17\">FMRadio \u958b\u767c\u7b46\u8a18\uff08\u4e94\uff09- Other<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u516b\u3001 \u5c08\u6848\u5be6\u6230\u3001\u6a5f\u5668\u4eba\u5b9a\u4f4d\u8207\u8de8\u5e73\u53f0\u63a2\u7d22\uff086 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=289\">\u7368\u7acb App \u958b\u767c\uff1aFunny Vote \u958b\u767c\u96dc\u8a18\uff082021\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=320\">\u67b6\u69cb\u8fed\u4ee3\uff1aFunny vote APP &#8211; MVP \u66f4\u65b0\u96dc\u8a18\uff082021\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=334\">\u8a9e\u8a00\u9077\u79fb\uff1aFunny vote APP &#8211; MVP Kotlin \u6539\u7248\u96dc\u8a18\uff082022\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=271\">\u6a5f\u5668\u4eba\u5b9a\u4f4d\uff1aSLAM Note \u2013 NDT TKU\uff082024\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=136\">\u8de8\u5e73\u53f0\u521d\u63a2\uff1aReact Native \u5b78\u7fd2\u7b46\u8a18\uff082016\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=150\">\u539f\u751f\u6a21\u7d44\u4e92\u901a\uff1aReact native Native android module \u2013 my god, many issue\uff082016\uff09<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e5d\u3001 \u65e9\u671f\u7d93\u5178\u5957\u4ef6\u3001\u8cc7\u6599\u5eab ORM \u8207\u751f\u614b\u62d3\u8352\u53f2\uff0810 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=247\">\u7db2\u8def\u5eab\u6f14\u9032\uff1aRetrofit 2 \u2014 How to Upload Files and Parameter list to Server<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=87\">\u7db2\u8def\u5eab\u6f14\u9032\uff1aAndroid volley customize request gzip and gson<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=226\">ORM \u8cc7\u6599\u5eab\uff1aGreenDao 3 Introduction<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=85\">ORM \u8cc7\u6599\u5eab\uff1aAndroid ORM Library &#8211; Green DAO\uff08\u4e00\uff09 introduction<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=92\">ORM \u8cc7\u6599\u5eab\uff1aAndroid ORM Library \u2013 Green DAO\uff08\u4e8c\uff09 Question Why can\u2019t set default value for entity<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=238\">\u8996\u5716\u7d81\u5b9a\uff1aAndroid ButterKnife introduction<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=111\">\u793e\u7fa4\u6574\u5408\uff1aFacebook api on Android Login FB AP on device<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=164\">\u6578\u64da\u8a8d\u8b49\uff1aGoogle Analytics Individual Qualification (GAIQ) GET !<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=129\">\u6578\u64da\u8ffd\u8e64\uff1aAndroid google analyze \u4f7f\u7528\u6559\u5b78(\u4e00) \u521d\u59cb\u5316<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=84\">\u7de8\u8b6f\u6253\u5305\uff1aAndroid studio release jar by gradle<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u5341\u3001 \u8edf\u9ad4\u5de5\u7a0b\u601d\u7dad\u3001\u5927\u5e2b\u66f8\u6458\u8207\u6f2b\u8ac7\uff085 \u7bc7\uff09<\/h2>\n\n\n\n<ul>\n\n<li><a href=\"https:\/\/boochlin.com\/?p=98\">\u4ee3\u78bc\u6574\u6f54\u4e4b\u9053\uff1aClean Code \u7121\u7455\u7684\u7a0b\u5f0f\u78bc \u2013 \u66f8\u6458\u5fc3\u5f97\uff08\u4e00\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=101\">\u4ee3\u78bc\u6574\u6f54\u4e4b\u9053\uff1aClean Code \u7121\u7455\u7684\u7a0b\u5f0f\u78bc \u2013 \u66f8\u6458\u5fc3\u5f97\uff08\u4e8c\uff09<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=140\">\u8077\u696d\u7d20\u990a\u601d\u7dad\uff1aThe Clean Coder \u7121\u7455\u7684\u7a0b\u5f0f\u78bc \u756a\u5916\u7bc7 \u2013 \u66f8\u6458\u5fc3\u5f97<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=53\">\u5de5\u7a0b\u54f2\u5b78\u6f2b\u8ac7\uff1a\u7d04\u723e\u8da3\u8ac7\u8edf\u9ad4 &#8211; \u7b46\u8a18<\/a><\/li>\n\n\n<li><a href=\"https:\/\/boochlin.com\/?p=79\">\u77e5\u8b58\u8403\u53d6\uff1aAndroid \u597d\u6587\u6574\u7406\uff082015\uff09<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u9644\u9304\uff1a\u5f85\u6574\u7406\u6df1\u5165\u6280\u8853\u8349\u7a3f\uff0812 \u7bc7\uff09<\/h2>\n\n\n\n<p>\u672c\u5340\u584a\u70ba\u5df2\u64b0\u5beb\u6838\u5fc3\u67b6\u69cb\u4f46\u5c1a\u672a\u65bc WordPress \u7dda\u4e0a\u516c\u958b\u767c\u5e03\u7684\u5167\u90e8\u6df1\u6c34\u5340\u6280\u8853\u8349\u7a3f\uff0c\u5df2\u5b8c\u6574\u5c0e\u51fa\u70ba Markdown \u5b58\u6a94\u65bc\u672c\u5730\u3002<\/p>\n\n\n\n<ul>\n\n<li>[\u8349\u7a3f] Jetpack Compose \u7684\u6027\u80fd\u512a\u5316\u5efa\u8b70\uff08\u672c\u5730\u5b58\u6a94 post_625\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] Flow vs Channel &#038; SharedFlow vs StateFlow\uff08\u672c\u5730\u5b58\u6a94 post_657\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] LaunchedEffect \u548c rememberUpdatedState and snapshotFlow\uff08\u672c\u5730\u5b58\u6a94 post_703\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] produceState \u6a4b\u63a5\u975e Flow \u7684\u300c\u56de\u547c\u300d\u6216\u300c\u76e3\u807d\u5668\u300d\u6a21\u5f0f\uff08\u672c\u5730\u5b58\u6a94 post_707\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] \u72c0\u614b\u5bb9\u5668\u3001\u9023\u5e36\u6548\u679c API\uff08LaunchedEffect\u3001rememberUpdatedState\u3001DisposableEffect\uff09\uff08\u672c\u5730\u5b58\u6a94 post_711\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] Cache the result of the network request\uff08\u672c\u5730\u5b58\u6a94 post_781\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] ActivityRetainedComponent vs ActivityComponent\uff08\u672c\u5730\u5b58\u6a94 post_815\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] @EntryPoint \u6a5f\u5236\uff0c\u5728\u7121\u6cd5\u4f7f\u7528\u6a19\u6e96 @Inject \u7684\u985e\u5225\u4e2d\u624b\u52d5\u63d0\u53d6 Hilt \u4f9d\u8cf4\uff08\u672c\u5730\u5b58\u6a94 post_818\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] strong skipping mode\uff08\u672c\u5730\u5b58\u6a94 post_827\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] Android system design\uff08\u672c\u5730\u5b58\u6a94 post_860\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] Mobile system design \u5be6\u8e10\u6307\u5357\uff08\u672c\u5730\u5b58\u6a94 post_862\uff09<\/li>\n\n\n<li>[\u8349\u7a3f] \u89e3\u6c7a Jetpack Compose \u4e2d\u6548\u80fd\u554f\u984c\u7684\u5be6\u7528\u505a\u6cd5\uff08\u672c\u5730\u5b58\u6a94 post_866\uff09<\/li>\n\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Something Record &#8211; \u90e8\u843d\u683c\u5168\u7cfb\u5217\u6587\u7ae0\u5c0e\u89bd\u76ee\u9304 \u672c\u5c0e\u89bd\u76ee\u9304\u5c07\u672c\u7ad9\u81ea 2015 \u5e74\u81f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/pages\/1032"}],"collection":[{"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boochlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1032"}],"version-history":[{"count":2,"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/pages\/1032\/revisions"}],"predecessor-version":[{"id":1034,"href":"https:\/\/boochlin.com\/index.php?rest_route=\/wp\/v2\/pages\/1032\/revisions\/1034"}],"wp:attachment":[{"href":"https:\/\/boochlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}