原创 Android 集成 google 登錄並獲取 性別等隱私信息
前言 公司做海外產品的,集成的是 google 賬號登錄,賬號信息、郵箱等這些不涉及隱私的按 google 的正常登錄流程可以輕鬆實現 。但是一旦需要獲取涉及隱私的信息就比較麻煩,文檔也不是十分清晰,非常難找,很多坑。 googl
原创 Java面試題基礎
Android 面試題Java 基礎部分Java基礎(不斷更新)Java 是值傳遞還是引用傳遞?有引用傳遞嗎?值傳遞和引用傳遞形參和實參JVM 內存分配 Java基礎(不斷更新) 大廠非常重視Java基礎 Java 是值傳遞還是引
原创 Sign in with Apple(object-c) 從開發者後臺到服務端驗證
Sign in with Apple前言準備工作開發工作(object-c編寫)基本流程添加依賴庫創建Apple登錄Button向Apple發起請求接收Apple的回調注意:用戶註銷 AppleId 或 停止使用 Apple ID
原创 Git追加本次提交到上次提交
Git 追加提交到上次提交命令Q&A 命令 有時候爲了減少提交日誌,並且添加的內容是與上次的內容屬於同一個提交內容的,爲了好維護,會將本次的提交追加到上次的提交中。使用git 命令如下: git add . (添加提交內容) gi
原创 Gradle自定義打jar包腳本
前言 聚合類型的手遊SDK打包涉及多渠道打包,有需求是將渠道的java代碼,根據不同的需求(規則)生成不同的jar包,而不是全部都放進一個jar包中。所以需要自己寫腳本自定義打jar包。 前提 保證module 是 library
原创 ios如何製作自己的靜態庫及遇到的問題
iOS如何製作自己的靜態庫 前言 之前一直在做的SDK,SDK的項目結構是項目工程下 有工作空間A,A工作空間又SDK靜態庫工程frameworkB,有靜態庫工程Frameworkdemo測試工程。其中使用pod管理需要引用的第三
原创 歸併排序及分治算法
分治算法: 分解:將大規模的複雜問題拆分成可自然而然解決或已解決的小規模問題,小規模問題與大規模問題形式相同 解決:遞歸解決小規模問題的 合併:將各子問題的解合併得到原問題的解。 歸併排序: 將問題一分爲2,使用遞歸進行排序
原创 插入排序、二分法查找、合併有序數組、選擇排序
插入排序 基本概念: 將未排序序列通過向有序序列從後向前掃描,找到合適的位置插入到有序序列裏。 基本步驟: 從第二個元素開始。(第一個元素默認爲是有序序列) 取出下一個元素,在已排序序列中從後向前掃描 該元素大於新元素就往後移動
原创 ios引導商店評分問題
由於項目有需求在應用內引導評分功能,新手記錄開發過程。 iOS引導評分有三種方式: 詳見以下博客地址,這位大佬總結的非常到位:https://blog.csdn.net/jiadabin/article/details/7847392
原创 Flutter的基本介紹--通過Flutter的第一個項目
前言 Flutter從2018年2月底在世界移動大會(MWC)發佈第一個bata版;5月的GoogleI/O大會上發佈 bata3;6月底GMTC宣佈了首個預覽版;9月谷歌開發者大會上發佈預覽版2;12月宣佈發佈正式版1.0版。而且5
原创 Android線程間通信-Handler消息機制
需要handler消息機制的原因 在android中由於UI線程並不是線程安全的,如果有子線程更新UI容易導致數據錯亂,如果UI線程設置爲線程安全的話導致效率低下; 而UI線程做耗時操作容易導致ANR發生。所以需要由子線程做耗時操作
原创 Android四大組件-Service
概念: android 四大組件之一,提供在後臺運行的服務,屬於計算型組件。 特點: 在後臺運行,無用戶界面,生命週期長。 啓動方式 startservice: 不與Activity綁定,啓動之後會無限期的運行下去,除非遇到內存低情況
原创 Android性能優化之內存泄漏記錄
根本原因 應該被回收的對象沒有被回收,一直佔用內存,導致內存泄漏,如果內存泄漏過多,有可能造成內存溢出(OOM)。 內存溢出 當內存泄漏過多時,應用需要的內存超過系統分配的內存限額時會導致內存溢出引發crash。 常見的內存泄漏 1、
原创 Android四大組件-ContentProvider
概念: 內容提供器,Android 四大組件之一。 作用: 可以操作非本應用程序的數據,實現跨進程數據共享。 優點: 可以在保證數據的安全性的情況下實現數據跨進程共享。因爲contentprovider規範了統一的數據訪問接口。 對底
原创 Java設計模式-裝飾者模式
定義: 裝飾者是在不改變對象的情況下動態給對象添加屬性和行爲,將責任動態的附加在對象上。 與繼承有類似功能即擴展功能。 裝飾者模式與繼承的區別: **繼承:**在子類擴展功能的時候是靜態的,並且是已知需要擴展的功能,是在編譯時實現的