當前位置:首頁 » 安卓系統 » android開發筆記

android開發筆記

發布時間: 2022-11-15 18:41:55

⑴ Android 筆記: AAC ADTS筆記

裸流無法播放,每一幀都要加上adts 頭。

其中,
profile:表示使用哪個級別的AAC,如01 Low Complexity(LC) -- AAC LC
profile的值等於 Audio Object Type的值減1.
profile = MPEG-4 Audio Object Type - 1
sampling_frequency_index:采樣率的下標

channel_configuration:聲道數,比如2表示立體聲雙聲道,

其中的data就是解碼AAC的關鍵信息,該信息的格式:
AAC Profile 5bits | 采樣率 4bits | 聲道數 4bits | 其他 3bits |

如果是8K的采樣率則換成:data = new byte[]{(byte) 0x15, (byte) 0x88};

⑵ Android開發一個簡單實用的鬧鈴APP

生活中我們會常常遇到需要鬧鍾提醒;不管是起床還是生活中的事件提醒。

那作為Android開發如何自己開發一個鬧鍾功能呢,是不是覺得很酷呢?接下來我們就實戰一個鬧鍾。





本示例採用的是RecyclerView,其適配器類與常無二,其異在於繼承一個代理類,為適配之後側滑刪除而准備

建立一個內部類ViewHolder實現控制項定義申明

實現onCreateViewHolder方法載入子項布局文件

綁定實體類,實現onBindViewHolder獲取數據

此處有三處狀態,第一種狀態:第一次進入程序,默認載入固定鬧鍾子項;第二種狀態:進入添加子項頁面,然後返回其主頁面,並判斷其switch是否為ture,如果為ture則添加子項;第三種狀態:程序被系統回收或者用戶停止程序,並再次進入程序,防止載入前一時刻鬧鍾子項;

添加依賴 實現側滑主要依賴於一個第三方包,然後使用RecyclerView進行子項綁定 依賴如下:

並在目錄build.gradle包下添加如下庫

其實現側滑刪除主要的玄機在於布局文件當中,使用RelativeLayout布局,將刪除按鈕固定在布局右方,並使用其他布局將其覆蓋,只有滑動時,才將其顯示。掩蓋側滑刪除按鈕與暴露側滑刪除按鈕效果對比圖如下





然後,在適配器類中,實現WeSwipeHelper.SwipeLayoutTypeCallBack介面,實現如下三個方法,第一個方法為獲取側滑刪除按鈕的寬度;第二個方法為需要滑動的視圖,也就是覆蓋側滑刪除按鈕的布局;第三個方法為當視圖正在滑動時,用戶觸發單擊事件,自動還原滑動狀態

最後,在需要添加子項的視圖中綁定RecyclerView即可

通過監聽子項滑動刪除按鈕點擊事件,實現子項刪除

跳轉新增鬧鍾子項Acticity需要傳輸實體類對象,傳輸對象一般需要序列化改類,其操作如下

定義實體類,並實現序列化

然後通過Intent傳輸Bundle對象

實現時間選擇主要使用系統集成的組件TimePicker,其使用方法如下 其有兩種顯示方式,第一種為spinner,就是下拉滑動式,第二種為clock,即顯示一個時鍾,通過滑動指針選擇時間

在style.xml文件中申明如下樣式

然後再指定Activcty申明即可

獲取數據比較簡單,實現對應介面即可

將獲取的數據通過SharedPreferences存儲起來,然後點擊存儲時,進行頁面跳轉,然後再該界面進行取出數據

存儲數據

首先判斷回調的switch數據是否為ture,如果為ture則保存該子項,然後再適配器類中進行數據添加

選中與默認兩種狀態效果圖如下




創建thumb和track樣式

創建一個選擇器文件,有選中和默認兩種狀態

創新open_thumb.xml文件

創建shut_thumb.xml文件

同樣創建一個選擇器,並用於兩種狀態

其中AlarmManager為系統主要操作類,參數為提醒模式、提醒時間(long型)、PendingIntent對象 以下有三種時間傳入,第一種,直接傳入一個Long型時間用於測試,第二種,通過設置系統啟動至今而設置時間,第三種,通過取出設置的時間,然後獲取系統當前時間,將其差傳入其中。

然後再清單文件中注冊服務

使用Intent實現服務啟動

殺死程序

本示例總共使用到了三個單例類:SP(SharedPreferences封裝)、TimeFormat(時間數據格式封裝)、KillProcess(殺死所有Activity)

SharedPreferences

KillProcess

文章帶這里就完成了一個簡單的鬧鍾;Android開發還有許多更加更多的知識學習。進一步學習Android技術,我這里推薦這份筆記方便學習,我就放在私信, 發送「核心筆記」或「手冊」即可獲取。朋友們可以免費領取!

⑶ Android開發一個簡單實用的鬧鈴APP

生活中我們會常常遇到需要鬧鍾提醒;不管是起床還是生活中的事件提醒。

那作為Android開發如何自己開發一個鬧鍾功能呢,是不是覺得很酷呢?接下來我們就實戰一個鬧鍾。

本示例採用的是RecyclerView,其適配器類與常無二,其異在於繼承一個代理類,為適配之後側滑刪除而准備

建立一個內部類ViewHolder實現控制項定義申明

實現onCreateViewHolder方法載入子項布局文件

綁定實體類,實現onBindViewHolder獲取數據

此處有三處狀態,第一種狀態:第一次進入程序,默認載入固定鬧鍾子項;第二種狀態:進入添加子項頁面,然後返回其主頁面,並判斷其switch是否為ture,如果為ture則添加子項;第三種狀態:程序被系統回收或者用戶停止程序,並再次進入程序,防止載入前一時刻鬧鍾子項;

添加依賴
實現側滑主要依賴於一個第三方包,然後使用RecyclerView進行子項綁定
依賴如下:

並在目錄build.gradle包下添加如下庫

其實現側滑刪除主要的玄機在於布局文件當中,使用RelativeLayout布局,將刪除按鈕固定在布局右方,並使用其他布局將其覆蓋,只有滑動時,才將其顯示。掩蓋側滑刪除按鈕與暴露側滑刪除按鈕效果對比圖如下

然後,在適配器類中,實現WeSwipeHelper.SwipeLayoutTypeCallBack介面,實現如下三個方法,第一個方法為獲取側滑刪除按鈕的寬度;第二個方法為需要滑動的視圖,也就是覆蓋側滑刪除按鈕的布局;第三個方法為當視圖正在滑動時,用戶觸發單擊事件,自動還原滑動狀態

最後,在需要添加子項的視圖中綁定RecyclerView即可

通過監聽子項滑動刪除按鈕點擊事件,實現子項刪除

跳轉新增鬧鍾子項Acticity需要傳輸實體類對象,傳輸對象一般需要序列化改類,其操作如下

定義實體類,並實現序列化

然後通過Intent傳輸Bundle對象

實現時間選擇主要使用系統集成的組件TimePicker,其使用方法如下
其有兩種顯示方式,第一種為spinner,就是下拉滑動式,第二種為clock,即顯示一個時鍾,通過滑動指針選擇時間

在style.xml文件中申明如下樣式

然後再指定Activcty申明即可

獲取數據比較簡單,實現對應介面即可

將獲取的數據通過SharedPreferences存儲起來,然後點擊存儲時,進行頁面跳轉,然後再該界面進行取出數據

存儲數據

首先判斷回調的switch數據是否為ture,如果為ture則保存該子項,然後再適配器類中進行數據添加

選中與默認兩種狀態效果圖如下

創建thumb和track樣式

創建一個選擇器文件,有選中和默認兩種狀態

創新open_thumb.xml文件

創建shut_thumb.xml文件

同樣創建一個選擇器,並用於兩種狀態

其中AlarmManager為系統主要操作類,參數為提醒模式、提醒時間(long型)、PendingIntent對象
以下有三種時間傳入,第一種,直接傳入一個Long型時間用於測試,第二種,通過設置系統啟動至今而設置時間,第三種,通過取出設置的時間,然後獲取系統當前時間,將其差傳入其中。

然後再清單文件中注冊服務

使用Intent實現服務啟動

殺死程序

本示例總共使用到了三個單例類:SP(SharedPreferences封裝)、TimeFormat(時間數據格式封裝)、KillProcess(殺死所有Activity)

SharedPreferences

KillProcess

文章帶這里就完成了一個簡單的鬧鍾;Android開發還有許多更加更多的知識學習。進一步學習Android技術,我這里推薦這份筆記方便學習,我就放在這里 Android核心技術進階手冊、實戰筆記、面試題綱資料 。朋友們可以免費領取!

⑷ Android 寫一個屬於自己的印象筆記

之前在看大部分的Android 富文本編輯幾乎都是利用webview實現,所以,便有了做一個Android原生的富文本編輯器的主意。

https://blog.csdn.net/qq_15893929/article/details/88670198

照慣例先秀一下圖:

該富文本編輯器樣式仿照印象筆記的Android版,繪制層實現基於Android的span樣式。

主要的實現在於編輯頁面,直接是繼承自EditText加以改造的(偷懶),但是如果想實現一個商業級別的編輯器,建議使用StaticLayout和自定義View,但是需要考慮的東西比較多,例如輸入法和排版布局、選區管理繪制、各類點擊事件。

這個版本更多的是將自己所學的一些知識的運用,只做了小一段時間,所以存留很多了bug和缺陷,後續會繼續找時間修補。

想增加的內容:

https://github.com/ChyengJason/SRich

⑸ 『38』在Android平台做閱讀筆記的方法

在 Android 平台記筆記,指的是用手機或者安卓平板寫筆記,這里暫時不包括其他設備。
該平台的特點是,移動能力強,便攜,但是辦公能力弱。這里的閱讀是非常方便的,在很多軟體的幫助下,閱讀體驗往往比電腦更好,而且便攜性使得這里的閱讀可以保證高度連續性。單純從『閱讀』看,這真的是相當優秀的平台,所以,如果能在這樣優秀的閱讀平台上方便地『寫讀書筆記』的話,那就太完美了。
馬驢我作為「不記筆記會死星人」呢,在這個方面也是各種嘗試,費了不少力氣,但一直沒有很理想的效果,甚至一直連「夠用」這個級別的解決方案都沒有遇到。直到最近,某個神器的新版本出現,才在很大程度上解決了這個問題(具體是什麼,我會在後面說明,這里先賣個關子)。所以現在總算是有了一些相對成體系的解決方案了。

一切一切的前提都是,閱讀的同時要記筆記。如果只是單純的閱讀而不記筆記的話,這樣的閱讀適合於看小說之類的超淺閱讀材料,所以不在本文的討論范圍內。嗯,所以在 Android 上閱讀也要有良好的記筆記條件才理想。

三星的Note系列我沒有見過,所以不清楚一支筆能帶來怎樣的扭轉。單純說常見的純觸屏設備吧,這些設備如果想要在閱讀的時候記筆記的話,需要具備 適合筆記的基本條件

如果滿足這樣的條件的話,就能在區域截屏的基礎上,對局部進行文字筆記的記錄,最後還能將匯總在一起的筆記導出來。

既然上面列舉了筆記的基本條件,那麼就要針對性地裝一些軟體。通常是多個工具配合才能良好運轉。

閱讀器的話,epub的支持是最為廣泛的,mobi在手機上除了kindle以外極少有能打開的工具,而kindle的體驗太差,所以, 在Android上閱讀盡可能將電子書轉化為epub格式。

其餘的常見格式就是pdf了(可能還有奇葩的caj),這種東西通常不能轉epub或者其他格式,即使勉強轉化,效果也不理想。所以直接按原始格式閱讀即可。

筆記軟體其實在Android上並不需要獨家列舉,畢竟只要有記錄功能就夠了——嗎??才不是。
筆記不僅僅是寫下來而已,一定還要有足夠強大的方便性,畢竟閱讀實在是一件辛苦事:即使你熱愛閱讀,也一樣。
所以,本著方便的需求,對筆記軟體進行審視以後可以發現一些值得推薦的工具:

Epub類:

其他類:
其他無論是網頁還是pdf之類的,筆記都相似,採用獨立的筆記軟體進行整理比較好。

不得不說的是,除了OneNote外,為知筆記也有類似的快速筆記並添加到上一篇筆記的功能,但只限於『復制』而已,與輸入是脫軌的,所以靈活性較差,還不完善。其餘軟體更是完全沒在這方面用力。

前面說過的,『區域截圖』工具,在Android上必須Root才能正常工作。Root以後這類工具還是一搜一大把的,感覺不出多大區別,就不推薦了,這一步的難點在於Root。
不Root真的就不能區域截圖,只能全屏截圖!

萬事俱備,現在開始分析閱讀筆記的寫作方法。

這個很簡單。以多看閱讀為例,閱讀的時候發現較好的段落以後直接長按劃線,然後寫讀書筆記就行了。沒什麼難度。
值得一提的是,在手機上不容易把握全局邏輯,所以這樣的閱讀通常不是閱讀的終點,還需要在電腦上進行進一步的梳理——如果想要更深一層地理解書中內容的話。但單純在Android上讀epub並記筆記的話,這就夠了。

相比之下,這個略微困難。
首先我們開啟OneNote的懸浮窗,同時開啟區域截圖工具,然後開始讀pdf。

還是要說OneNote在移動端糟糕的閱讀體驗……所以這里的筆記通常是不能直接在手機上看的,實在很難看。需要在電腦上整理一下,把多餘的筆記容器(方框)合並以後,才能正常適應手機屏幕。
補充:沒有Root的Android手機,在這一方面會遇到巨大的困難。。。

網頁資料,無論是保存到Pocket之類裡面還是直接網頁閱讀都一樣,和讀pdf差不多,多一步『分享』。這一步是為了保存來源,畢竟這里的閱讀明顯要零散得多。
所以步驟為:

這個方法還是要提一下,保證方法的完整性……
簡單來說就是,Android設備只負責顯示閱讀材料,而筆記由屏幕外面的實體(紙質)紙筆完成。
適合於為課本記筆記。
這個大家都熟悉,難度較小,只不過記筆記以後整理起來較為困難,這是本方法的最大問題。

⑹ Android開發筆記(二十一)Room 創建和使用

看到個好教程: https://blog.csdn.net/qq_21793463/article/details/78905316
更高級的復雜數據存儲方法: https://www.jianshu.com/p/9c430196aac6

工具:DB Browser
或者AS:file - setting - plugins -Database Navigator
開門見坑:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nanmu.room/com.nanmu.room.MainActivity}: java.lang.RuntimeException: cannot find implementation for com.nanmu.room.WordDatabase. WordDatabase_Impl does not exist
原因:依賴問題,中間那一句必加

定義:
這里Word相當於一個表,單個word實例化相當於每一行,db的名字是main中定義的databaseName,Word里的元素相當於key(Entity)

Dao:

Main:

將wordDao.insertWords改成:
其他同理。(用new Thread應該也可以)
使用的時候用這個
new IsertAsyncTask(wordDao).execute(word,word2);

功能和之前一樣,不截圖了

⑺ 安卓筆記——layout的屬性

相對於兄弟元素

android:layout_below="@id/aaa":在指定View的下方

android:layout_above="@id/xxx":在指定View的上方

android:layout_toLeftOf="@id/bbb":在指定View的左邊

android:layout_toRightOf="@id/cccc":在指定View的右邊相對於兄弟元素

android:layout_below="@id/aaa":在指定View的下方

android:layout_above="@id/xxx":在指定View的上方

android:layout_toLeftOf="@id/bbb":在指定View的左邊

android:layout_toRightOf="@id/cccc":在指定View的右邊

相對於父元素

android:layout_alignParentLeft="true":在父元素內左邊

android:layout_alignParentRight="true":在父元素內右邊

android:layout_alignParentTop="true":在父元素內頂部

android:layout_alignParentBottom="true":在父元素內底部

對齊方式

android:layout_centerInParent="true":居中布局

android:layout_centerVertical="true":水平居中布局

android:layout_centerHorizontal="true":垂直居中布局

android:layout_alignTop="@id/xxx":與指定View的上邊界一致

android:layout_alignBottom="@id/xxx":與指定View下邊界一致

android:layout_alignLeft="@id/xxx":與指定View的左邊界一致

android:layout_alignRight="@id/xxx":與指定View的右邊界一致

間隔

android:layout_marginBottom=""; 離某元素底邊緣的距離

android:layout_marginLeft=""; 離某元素左邊緣的距離

android:layout_marginRight ="";離某元素右邊緣的距離

android:layout_marginTop=""; 離某元素上邊緣的距離

android:layout_paddingBottom=""; 離父元素底邊緣的距離

android:layout_paddingLeft=""; 離父元素左邊緣的距離

android:layout_paddingRight ="";離父元素右邊緣的距離

android:layout_paddingTop=""; 離父元素上邊緣的距離

margin 與padding 區別

padding是站在父view的角度,是自己的內容與其父控制項的邊之間的距離。

margin則是站在自己的角度描述問題,自己與旁邊的某個組件的距離

⑻ Android成長筆記3——創建layout-large文件夾

問題環境 :需要建立layout_large文件夾,然無頭緒

詳情 :https://www.jianshu.com/p/ccf07c75649e

詳情如下 :

之前在寫屏幕適配的時候,考慮到平板和手機的尺寸不一樣,所以想新建一個layout_large文件,想起了以前創建layout文件的做法,具體參見: Android Studio 在layout文件夾建立子文件夾

但是發現還是有問題。對應的activity還是只是指向第一個layout文件中的activity_main.xml文件。找了下解決的方法,這里記錄下:

我需要的是在layout和layout_large文件下都創建activity_main2.xml這個文件,在layout文件下創建很容易,直接創建就好了,這里記錄下創建layout_large這個文件。

1.右鍵res->new->Android resource file

2.進入New Resource File

3.單擊Size

⑼ Android開發藝術探索讀書筆記之AIDL

AIDL是 Android Interface definition language的縮寫,一看就明白,它是一種android內部進程通信介面的描述語言,通過它我們可以定義進程間的通信介面

AIDL可以實現跨進程的方法調用。定義進程通信介面供服務端和客戶端調用。

在AIDL文件中並不是所有數據類型都可以使用。只支持下列數據類型

默認情況下AIDL的調用過程是同步的,所以不能直接進行比較耗時的操作,否則容易導致客戶端ANR。如果需要進行非同步操作,在服務端不需要另起線程,但是在客戶端需要另起線程訪問遠程方法,再通過Handler通知到UI線程即可!

⑽ 如何自學 Android 編程

首先是選好教材,我發現好的教材真的是可以使學習事半功倍,由於我是沒有任何學習基礎的人(不會使用JAVA語言),所以我開始就補了我的JAVA。我選的教材是國外的教材,《JAVA大學基礎教程》第六版花了兩個星期看完了,看了好幾遍。然後才開始學習Android開發的,建議那些沒有JAVA基礎的同學,先去補習一下JAVA的基礎知識。

補完JAVA的基礎,才真正踏上學習Android開發的路,開始學習的時候我到網上下了一大堆教程,這個Android精通,那個Android詳解的,這個看看,那個看看,一段時間下來發現教程太多太雜反而不好,接下來的時間里我就選了我自己覺得比較的兩個教程認真看,一個是《Android開發筆記》一個是mars老師的視頻教程,我自己也買了。

如果你一點基礎沒有,你可以先試試在線app開發平台-應用之星,無需編碼,人人都能開發。如果你自己想學習andriod開發,那就一定要堅持下去。如果我的回答對你有所幫助,記得選擇我為滿意答案哦,么么噠。

熱點內容
c語言winsock 發布:2025-03-04 08:22:57 瀏覽:104
PH的編程 發布:2025-03-04 08:22:21 瀏覽:270
linux上拉取ftp上的文件 發布:2025-03-04 08:09:26 瀏覽:414
戴爾r系列伺服器怎麼用 發布:2025-03-04 08:04:41 瀏覽:769
查找伺服器上ip 發布:2025-03-04 08:04:27 瀏覽:917
自動超級腳本 發布:2025-03-04 08:02:55 瀏覽:773
大數據應用技術需要什麼電腦配置 發布:2025-03-04 07:56:33 瀏覽:54
群九軸演算法 發布:2025-03-04 07:45:13 瀏覽:169
c語言企業面試題目 發布:2025-03-04 07:45:03 瀏覽:409
e付卡怎麼設置密碼 發布:2025-03-04 07:44:59 瀏覽:92