一、為什么要使用 Handler眾所周知,Android 不允許在子執行緒中更新 UI。但是我們在子執行緒完成耗時的操作之后,需要對界面資料進行更新,又該怎么處理呢?這時候,我們可以使用 Handler 進行 UI 更新。值得注意的是,更新 UI 我們需要把 Message 發送到主執行緒持有的 MessageQueue ,否則程式依然就會發生奔潰。另外,除了更新 UI,Handler 是 Android 系統的訊息傳遞機制,它定義了一套處理訊息的規則,廣播、服務以及執行緒間的通信都需要靠它來完成。與 H...
2021-09-14 more背景安卓誕生以來,就一直有這樣的話題 “安卓手機越用越卡”,其實安卓手機卡頓的原因很多,例如某些APP越來越臃腫,全家桶喚醒、占用運存過多,導致手機的運存不夠用了。又例如因為訊息推送服務的關系,APP需要一直后臺運行,同樣也會占用非常多的運存,這也就是為什么現在安卓手機的運存越來越大。為了優化安卓手機性能,目前的方法也是非常多,例如凍結APP喚醒、使用小程式/PWA程式代替部分應用、刷第三方優化過的ROM、CPU性能調度、刷內核等等……Android必備技能作為一個Android程式員,性能優化是...
2021-09-14 more上一篇文章 Kotlin之協程coroutine使用(1) 文末介紹了Activity,Fragment 和 ViewModelScope對應的自動系結生命周期協程開啟方式, lifecycleScope 和 viewModelScope 這篇文章,就解剖一下,為什么這兩貨可以系結生命周期,去需要用戶自己去系結取消?=========================================================================Activity 和 Fra.....
2021-09-14 more文章目錄前言I、 例子1.1 準備gpx 檔案( “iOS“選項下的”GPX File”)1.2 gpx檔案的使用1.3 通過逆地理編碼來獲取位置資訊;1.4 檢測方法II hook CLLocation2.1 修改方案2.2 檢測方法III 其他修改和檢測方案3.1 其他修改方案3.2 其他檢測方案see also前言測驗位置改變的方式:通過GPX檔案修改經緯度直接hook CLLocation修改通過GPX檔案修改經緯度資訊的原理:蘋果在Xcode 6、iOS 8.0開始提供...
2021-09-14 moredart 加密mdsdart有內置的md5加密包,先引入頭檔案:import 'dart:convert';import 'package:crypto/crypto.dart';void main() { // 待加密字串 var s = "https://space.bilibili.com/480883651"; var content = new Utf8Encoder().convert(s); var digest = md5...
2021-09-14 moreiOS執行緒鎖一:十種執行緒鎖我們在使用多執行緒的時候多個執行緒可能會訪問同一塊資源,這樣就很容易引發資料錯亂和資料安全等問題,這時候就需要我們保證每次只有一個執行緒訪問這一塊資源,鎖 應運而生。這里順便提一下,上鎖的兩種方式trylock和lock使用場景:當前執行緒鎖失敗,也可以繼續其它任務,用 trylock 合適當前執行緒只有鎖成功后,才會做一些有意義的作業,那就 lock,沒必要輪詢 trylock以下是十種執行緒鎖所用時間:1、OSSpinLock (自旋鎖)測驗中效率最高的鎖, 不過經YYK...
2021-09-14 more序言隨著app隱私政策的收緊,現在不經過用戶同意,就收集敏感資訊的行為一旦被檢測出來。很容易造成app下架。但是有些SDK的初始化是通過注冊ContentProvider實作自動呼叫其onCreate()方法,來實作無感初始化的。如果SDK在ContentProvider中獲取了敏感資訊,又沒有提供控制方法。我們就很被動。于是我花了點時間研究了怎么hook contentProvider的創建。讓其在用戶同意后再初始化。方案1宣告在清單檔案中的ContentProvider 會在應用啟動后就創建。具體...
2021-09-14 more文章目錄1、建立開發環境2、新建工程3、開發App4、運行App5、出現問題1、建立開發環境IDE+SDK2、新建工程選擇Phone and Tablet日的Empty Activity模板,點擊Next使用AS向導建立Hello World工程3、開發App打開layout xml檔案,查看Design界面點擊右上角code更改文本框內容:新建strings.xml中的字符資源;更改文本框內容:在Design界面選中文本框,在屬性頁修改text...
2021-09-14 more實際問題:為什么要在電腦上使用手機APP?很多的考研平臺都是提供手機APP和電腦網頁兩種使用方法。手機APP是可以快取課程的,快取之后觀看不會二次消耗流量,而電腦網頁版不支持課程快取;用手機螢屏聽課是一件很費眼神的事情,因此就產生了在電腦上使用手機APP的需求。現在提供一種在電腦上使用手機APP的方法,以及一些細節配置方法。操作教程1、下載安裝安卓模擬器雷電模擬器官網下載鏈接:雷電安卓模擬器-手游模擬器安卓版_android手機模擬器電腦版_雷電模擬器官網https://www.l...
2021-09-14 moreDagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......
uj5u.com 2020-09-10 06:57:59 more新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......
uj5u.com 2020-09-10 06:58:52 more介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。
......
新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......
uj5u.com 2020-09-10 07:00:37 more報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......
uj5u.com 2020-09-10 07:00:41 moreAndroid: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......
uj5u.com 2020-09-10 07:00:44 more一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......
uj5u.com 2020-09-10 07:00:47 more背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......
uj5u.com 2020-09-10 07:00:50 more新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......
uj5u.com 2020-09-10 07:01:38 more掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......
uj5u.com 2020-09-10 07:01:43 more我不確定這是否是錯誤的代碼,或者將 isPrime 函式放在一個方法中然后在 printSomething 方法中使用該方法是否會“更好”?,如果是這樣,我怎么可能在里面使用一...
uj5u.com 2022-05-09 11:01:32 more這是來自 The Odin Project 的 Rock, Paper, Scissors 任務。當我運行代碼時, playerSelection 和 computerSelection 變數是未定義的。即使我定義了這些變...
uj5u.com 2022-05-09 11:00:53 more我正在開發一個 QT 專案,該專案可以查看和編輯給定檔案中的表視圖。對于 GUI 中的按鈕,我使用的是 QToolButton,但是當創建了多個按鈕時,它們被放置在另一個下...
uj5u.com 2022-05-09 09:58:59 more我正在嘗試取消參考存盤在靜態陣列中的方法指標并從方法中呼叫它,但出現以下錯誤:error: 'chip8::Chip8::table[0]' cannot be used as a member pointer, si...
uj5u.com 2022-05-09 09:57:57 more在下面的場景中,我需要從 setup 函式回傳的基類 A 共享指標呼叫子類 B 函式(fun1),并且同樣使用了 dynamic_cast_pointer 以便派生類 shared_ptr 物件可以分配...
uj5u.com 2022-05-09 09:57:01 more我正在制作一個簡單的演算法來計算每個數字在向量中表示的次數。但是,在編譯時,它在彈出視窗中給了我以下錯誤: Vector subscript out of range并且它參考:檔...
uj5u.com 2022-05-09 09:56:27 more我認為大多數人都知道如何在計算機編程中進行數值推導(作為限制 --> 0;閱讀:“作為限制接近零”)。//example code for derivation of position over time to o...
uj5u.com 2022-05-09 09:55:53 more 所以我想使用線性插值將影像從寬度 = 500 更改為寬度 = 100。我怎樣才能做到這一點?
uj5u.com熱心網友回復:您可以使用cv::resize來調整影像大小。該inte...
今天,當我的 try catch 塊沒有像我預期的那樣作業時,我感到非常驚訝。當我的 try 塊中發現錯誤時,我希望它退出并顯示所需的錯誤訊息。這是我非常簡單的代碼:#i...
uj5u.com 2022-05-09 09:54:12 more