原创 安卓使用aidl進行進程間通信,使用自定義對象
1.server端 Aidl文件創建,創建後rebuild項目會生成對應的java文件如下: 定義AIDLBean文件 // Person.aidl package com.aiyuba.serverclient; // De
原创 點擊箭頭隱藏摺疊view
自定義ViewGroup,對設置layoutParam的bottomMargin不太理解 package com.aiyuba.animateview; import android.animation.Animator; im
原创 mac查看android源碼:Sublime Text
詳情:https://jingyan.baidu.com/article/48206aeafba820216ad6b3f5.html mac下也自帶一個Ctags, 使用Sublime Text安裝的Ctag不行, 採用一下方式
原创 自定義安卓拖拽動畫排序ViewGroup
本代碼通過OnDragListener實現安卓的拖拽。 OnDragListener API 11 加⼊入的⼯工具類,⽤用於拖拽操作。 使⽤用場景:⽤用戶的「拖起 -> 放下」操作,重在內容的移動。可以附加拖拽數據 不不需要寫⾃自
原创 仿微信朋友圈的可支持多點觸摸的彈性滑動Scrollview
彈性滑動scrollview,支持多點觸摸的接力型下拉滑動,動畫回彈。 package com.aiyuba.uiview; import android.animation.ValueAnimator; import andr
原创 安卓平滑曲線的實現:三次貝塞爾曲線
參考鏈接 https://www.jianshu.com/p/c4601bab860a 理論知識: 座標計算 令 A0和B3連線的斜率 k = (B3Y - A0Y) / (B3X - A0X) 常數 b = A3Y - k *
原创 flutter run提示Operation not permitted
錯誤 ProcessException: Operation not permitted Command: /Users/macbook/Developer/rembon/customer/android/gradlew -v m
原创 flutter運行項目掛在 "Resolving dependencies
直接跑項目掛在Resolving dependencies,然後也沒錯誤提示 1.嘗試修改了安卓下面的gradle版本,即gradlew。然後運行在termial運行./android/gradlew 錯誤還是無法得到解決 2.t
原创 Activity 從啓動到佈局繪製的流程分析
這篇文章主要是配合源碼簡單的介紹一下,程序的加載過程,Activity 中佈局的加載過程,能夠大體的瞭解整個過程。不過過度的追究細節,因爲裏面任何一個細節可能都夠你研究一段時間的!先了解掌握大體過程,再慢慢來! 開始啓動 我們都知
原创 自定義taglayout,記二擼自定義view
自定義標籤佈局 效果如下: package com.iyuba.pratice.view; import android.content.Context; import android.graphics.Rect; impor
原创 handler機制+ThreadLocal + 主線looper
handler涉及的4個對象,Looper,MessageQueue,Message,Handler。外加一個ThreadLocal 實現一個可以往子線程發消息的thread * <pre> * class Loope
原创 安卓AIDL的使用
一.AIDL的使用 服務端 1.服務端新建AIDL文件,點擊app直接新建AIDL文件 2.rebulid項目,在build文件夾下生成對應的java文件 3.新建一個service,重寫onBind()方法,並返回Binder
原创 sqlite事務介紹
應用程序初始化時需要批量的向sqlite中插入大量數據,單獨的使用for+Insert方法導致應用響應緩慢,因爲 sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操作。我的應用初始5000條記錄也就是
原创 activity的啓動流程
簡單總結下 Activity 的啓動流程: 從用戶應用進程開始啓動,如果從桌面啓動,則爲 launcher 進程,用戶進程通過 Binder 機制與 system_server 進程進行通信 ActivityManagerServ
原创 安卓TimeZone,Locale
1.Calender設置時區 Date date = new Date(1359641834000L); System.out.println(date); Calendar calendar = Calendar.getInst