官網地址:https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/ OOP (物件導向編程)針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。 AOP (面向切面變成)針對業務處理過程中的切面進行提取,它所面對的是 處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。 &
我們在用手機的時候,如果來了簡訊,而我們沒有點擊查看的話,是不是在手機的最上邊的狀態列裡有一個簡訊的小表徵圖提示啊。你是不是也想實現這種功能呢。今天的Notification就是解決這個問題的。
Activity的四種launchMode。原文地址 :http://blog.csdn.net/liuhe688/article/details/6754323
Toast是最常用不過的了但是現在市面上的很多程式都沒注意到一點,就是Toast的立即關閉問題 Toast起到了提示作用之後該取消就要儘快取消 使用者不能手動取消Toast是有點煩人的 其實要關閉也是非常非常簡單的 在工具類中加上以下代碼: package com.xmic.moman;import android.content.Context;import android.widget.Toast;public class
很經常當我們動態建立某些View時,需要通過擷取他們的width和height來確定別的view的布局,但是在onCreate()擷取view的width和height會得到0.view.getWidth()和view.getHeight()為0的根本原因是控制項還沒有完成繪製,你必須等待系統將繪製完View時,才能獲得。這種情況當你需要使用動態布局(使用wrap_content或match_parent)就會出現。一般來講在Activity.onCreate(...)、onResume()方法
一:在源碼開發模式下 1:包含標頭檔: #include <cutils/log.h> 2:定義宏LOG_TAG #define LOG_TAG "MY LOG TAG" 3:連結log對應的.so庫 在Android.mk檔案中加入如下語句: LOCAL_SHARED_LIBRARIES +=\ libcutils 接下來就可以直接使用LOGD來列印log資訊了.
概念: LruCache 什麼是LruCache。 LruCache實現原理是什麼。 這兩個問題其實可以作為一個問題來回答,知道了什麼是 LruCache,就只然而然的知道 LruCache 的實現原理;Lru的全稱是Least Recently Used ,近期最少使用的。所以我們可以推斷出 LruCache 的實現原理:把近期最少使用的資料從緩衝中移除,保留使用最頻繁的資料,那具體代碼要怎麼實現呢,我們進入到源碼中看看。 LruCache源碼分析 public
下面介紹合并檔案的幾種方式,並通過合并amr檔案來舉例介紹合并檔案的具體流程。amr格式的檔案頭是6位元組,所以在進行檔案合并的時候要減去除第一個檔案以外的其他檔案的檔案頭。 注意:不同檔案的檔案頭是不一樣的,所以在合并的時候根據不同檔案相應的減去合并檔案的檔案頭。 步驟一:擷取要合并的檔案及建立合并後儲存的檔案 /**用於存放要合并的檔案的集合**/List<File>tempFiles=new
Android Studio內建模擬器啟動比較慢,並且App的安裝和卸載更卡,所以用模擬器的同學可以使用Genymotion。 就安裝和使用時候遇到的問題記錄一下: 1. Genymotion安裝需要有Oracle的VM,安裝時應該安裝在同一個盤中; 2.安裝好了之後按照Genymotion的使用教程建立virtual device,之後點擊Start; 3.遇到的問題unable to start Genymotion virtual device 。
鎖定螢幕對於移動終端來說是非常有必要的,但是對於機頂盒產品就沒有這個必要了。所以本文介紹一下怎樣讓Android裝置永不鎖屏。 Android系統的鎖屏時間存放在Setting資料庫中,欄位為Settings.System.SCREEN_OFF_TIMEOUT。查看SettingsProvider源碼,查看如下檔案的源碼:
一、Activity生命週期介紹 我們在學Java Web時會學到Servlet的生命週期,因此對生命週期的概念已經有一定瞭解,簡單地說就是某個事物從出生到死亡的過程。 Activity也存在聲明周期,從Activity被建立到最後被銷毀;Activity運行時可能會受到一些突發事件的影響,例如在使用Activity時突然來了一個電話,則Activity需要在生命週期函數中設定; 下圖是Activity生命週期中最經典的圖: 7個生命週期方法:
首先是簡單的編碼,代碼如下 /** * 根據字串進行二維編碼 * @param str 需要編碼的字串 * @param widthAndHeight 需要產生的bitmap的高寬 * @return */public Bitmap enCode(String str,int widthAndHeight){if (!str.equals("")&&str!=null)try {return
1. HAL的module與stub HAL(Hardware AbstractLayer)硬體抽象層是Google開發的Android系統裡上層應用對底層硬體操作屏蔽一個軟體層次,說白了,就是上層的應用不用關心底層硬體具體如何工作的,只要向上層提供一個統一的介面即可,這種設計思想廣泛的存在於當前的軟體架構設計裡。
Android 的電源管理也是很重要的一部分。比如在待機的時候關掉不用的裝置,timeout之後的螢幕和鍵盤背光的關閉,使用者操作的時候該開啟多少裝置等等,這些都直接關係到產品的待機時間,以及使用者體驗。在網上可以找到一篇到處轉載的關於power
http://blog.csdn.net/ahutzh/article/details/6911095 Android ListView沒行加入CheckBox,實現挑選清單,既可點擊複選框進行選中,也可以點擊list一行進行選中,效果圖如下: 下面貼下主要代碼的實現: 對於列表中複選框,我們需要在複選框的狀態發生變化時,儲存複選框的狀態,不然在拖動列表過程中,會丟失複選框的狀態。 在這裡我們採用下面方式儲存:
過程如下: 先在framework/base 下建立一目錄叫venus /venus 目錄下有兩個檔案夾: |-- java| `-- android `-- jni |-- Android.mk |-- jni.cpp java 下的類包遵循java 類包命名規則,好了,進入關鍵的第二步: 在檔案build/core/pathmap.mk中的FRAMEWORKS_BASE_SUBDIRS變數裡添加 venus\
繼續完善上次懵懵懂懂的流程. 原理還是一樣的.不明白的看一看 Android 使用RxJava+Retrofit +Realm 組合載入資料 <讀取緩衝 顯示 請求網路資料 緩衝最新資料 更新介面>(一) 這次整合的是資料庫Realm點擊查看中文文檔感興趣的可以去看看. 使用Realm的原因是它和Retrofit一樣.天生支援Rxjava,當然還有其他的,不過我沒用過. Realm配置 Applaction中
首先是這個問題如何修改。 在/frameworks/base/Android.mk中,找到如下行: packages_to_document := 在該變數的指派陳述式最後添加 xxxxx (這裡是你的包的名稱,比如com/sina/ui,其實這裡就是你的原始碼 在/frameworks/base/<你的模組>/java/下面的一部分路徑,只要能夠唯一的匹配到你的 代碼即可) 即可。
[原創] Android NDK 安裝全記錄 1. http://www.cygwin.com/ 下載最新版本setup.exe工具, 選擇最近的伺服器, 我選的是163的鏡像網站, 下載所有包, 到本地不安裝, 然後選擇, 選擇全部所有, 全安裝, 本地安裝, 即可; 2. 執行cygwin根目錄下的Cygwin.bat批處理後,輸入以下,判斷是否安裝成功 cygcheck -c cygwin gcc -v g++ -v make -
詳細步驟可以移步到我的部落格http://blog.csdn.net/jdfkldjlkjdl/article/details/9883995 一、下載PhoneGap 下載地址:http://phonegap.com/install/ 我下載的是最新的PhoneGap 2.9.1 將下載好的PhoneGap解壓縮,可以看到裡面有一個example 二、搭建環境