【轉(zhuǎn)】你不知道一些神奇Android Api

這將是一個(gè)關(guān)于Android Api的系列文章,AntSoft的Android 團(tuán)隊(duì)一直緊隨技術(shù)前沿,在Budapest University of Technology and Economics培訓(xùn)Android技術(shù)已經(jīng)有8年多的時(shí)間。公司里有個(gè)傳統(tǒng)就是每周進(jìn)行技術(shù)分享畔乙,這里將介紹一些Android平臺(tái)上有意思的API叉弦。

當(dāng)前Android已經(jīng)有了非常多可用的依賴庫(Library),但其實(shí)Android platform的一些API有些鮮為人知筋岛,但非常有用的方法和類,去研究一下這些API是非常有意思的晒哄。

我們知道Android API依賴的Java SE API也非常龐大睁宰,根據(jù)統(tǒng)計(jì),Java SE 8有217個(gè)package寝凌,4240個(gè)方法柒傻,而java SE 7有209個(gè)package,4024個(gè)方法较木。


在這個(gè)系列文章中红符,我們將從不同角度展示一些鮮為人知的Android API,并使用這些API寫了demo劫映,開源地址:https://github.com/peekler/GDG

demo App中給出的每個(gè)API的使用都是在不同的Activity中违孝,從App首頁可以進(jìn)入到不同的API demoActivity。

640.jpg

拼寫檢查
Android從level 14開始有一個(gè)檢查拼寫的API泳赋,可以通過 TextServicesManager使用雌桑,從level16開始已經(jīng)可以甚至可以檢查一個(gè)完整的句子了。
使用方法非常簡(jiǎn)單祖今,通過 TextServicesManager可以創(chuàng)建SpellCheckerSession:


可以通過實(shí)現(xiàn)SpellCheckerSessionListener接口得到檢查結(jié)果:

SentenceSuggestionsInfo數(shù)據(jù)中保存了正確的文字校坑、偏移量以及所有相關(guān)的信息。

demo地址SpellCheckerActivity
文字識(shí)別
這是Google Play Services Vision API中提供的功能千诬,可以通過gradle dependency非常簡(jiǎn)單的引入到project中耍目,需要注意的是不要引入整個(gè)Play Services,因?yàn)?em>Play Services非常大徐绑,而我們需要的只是其中的一小部分邪驮,https://developers.google.com/android/guides/setup中可以找到相關(guān)的幫助。
Vision API中包含的服務(wù)有:
人臉識(shí)別

條形碼掃描

文字識(shí)別

使用 Text Recognizer API非常簡(jiǎn)單:



首先傲茄,在build.gradle中引入依賴:
compile 'com.google.android.gms:play-services-vision:10.0.1'

然后創(chuàng)建TextRecognizer對(duì)象:
TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();

之后實(shí)現(xiàn) Detector.Processor 接口接口監(jiān)聽結(jié)果毅访,得到的結(jié)果是TextBlock 數(shù)組。



合理地使用 TextRecognizer盘榨,一般要自定義包含SurfaceView的View用于在屏幕顯示結(jié)果喻粹。demo地址 OCRActivity , ocr 中有一些幫助類草巡。
TimingLogger
TimingLogger可以很容易地計(jì)算兩個(gè)log信息之間的時(shí)間差守呜,如下所示:
D/TAG_MYJOB: MyJob: beginD/TAG_MYJOB: MyJob: 2002 ms, Phase 1 readyD/TAG_MYJOB: MyJob: 2002 ms, Phase 2 readyD/TAG_MYJOB: MyJob: 2001 ms, Phase 3 readyD/TAG_MYJOB: MyJob: end, 6005 ms

使用TimingLogger:
TimingLogger timings = new TimingLogger("TAG_MYJOB", "MyJob");

然后通過addSplit(...) 方法創(chuàng)建一個(gè) log entry:
timings.addSplit("Phase 1 ready");

當(dāng)使用dumpToLog()后,log信息就會(huì)打印出來:
timings.dumpToLog();

注意要使用TimingLogger, 要設(shè)置adb命令是Tag可用:
setprop log.tag.TAG_MYJOB VERBOSE

demo地址:TimingLoggerActivity.
截屏
在某些情況下查乒,截屏非常有用弥喉。也有一些第三方庫如 Falcon實(shí)現(xiàn)這個(gè)功能,從level 21開始 MediaProjection可以實(shí)時(shí)獲取屏幕內(nèi)容和系統(tǒng)聲音信息流侣颂。
qi档桃,有時(shí)使用標(biāo)準(zhǔn)的Android API通過getWindwo()
非常簡(jiǎn)單地把屏幕內(nèi)容保存為Bitmap
:




demo地址:ScreenCaptureActivity.
PDF創(chuàng)建
從level 19開始Android支持本地內(nèi)容生成PDF文件。
首先創(chuàng)建一個(gè)PageInfonew PdfDocument.PageInfo.Builder(w,h,pageNum).create() ;
,然后使用PDFDocument中的startPage([pageInfo])
就可以創(chuàng)建一個(gè)PDF文件了憔晒。
以下的代碼創(chuàng)建了一個(gè)demo.pdf文件:




感謝閱讀。
此篇是譯文蔑舞,原文地址 Discovering the Android API - Part 1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拒担,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子攻询,更是在濱河造成了極大的恐慌从撼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钧栖,死亡現(xiàn)場(chǎng)離奇詭異低零,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拯杠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門掏婶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潭陪,你說我怎么就攤上這事雄妥。” “怎么了依溯?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵老厌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我黎炉,道長(zhǎng)枝秤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任慷嗜,我火速辦了婚禮淀弹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洪添。我一直安慰自己垦页,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布干奢。 她就那樣靜靜地躺著痊焊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薄啥,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天辕羽,我揣著相機(jī)與錄音,去河邊找鬼垄惧。 笑死刁愿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的到逊。 我是一名探鬼主播铣口,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼觉壶!你這毒婦竟也來了脑题?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤铜靶,失蹤者是張志新(化名)和其女友劉穎叔遂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體争剿,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡已艰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚕苇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哩掺。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捆蜀,靈堂內(nèi)的尸體忽然破棺而出疮丛,到底是詐尸還是另有隱情,我是刑警寧澤辆它,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布誊薄,位于F島的核電站,受9級(jí)特大地震影響锰茉,放射性物質(zhì)發(fā)生泄漏呢蔫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一飒筑、第九天 我趴在偏房一處隱蔽的房頂上張望片吊。 院中可真熱鬧,春花似錦协屡、人聲如沸俏脊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爷贫。三九已至认然,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漫萄,已是汗流浹背卷员。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腾务,地道東北人毕骡。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像岩瘦,于是被迫代替她去往敵國(guó)和親未巫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容