真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android引導(dǎo),Android設(shè)置向?qū)?/h1>

請教下android 這種新手引導(dǎo)功能該怎么實現(xiàn)?

1、第一階段:加在首頁的PopupWindow上面

十載的湘陰網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整湘陰建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“湘陰網(wǎng)站設(shè)計”,“湘陰網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

private void addFeatureGuide() {

LayoutInflater layoutInflater = LayoutInflater.from(this);

LinearLayout popContentView = (LinearLayout) layoutInflater.inflate(R.layout.popup, null);

PopupWindow popupWindow = new PopupWindow(popContentView, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

popupWindow.showAtLocation(this.findViewById(R.id.main_root), Gravity.CENTER, 0, 0);

}

在onResume的時候調(diào)用addFeatureGuide()方法。

這樣應(yīng)該OK了吧?不!Run的時候報錯了:

FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to resume activity {com.example/com.example.MyActivity}: android.view.WindowManager$BadTokenException: Unable to add window — token null is not valid; is your activity running?

at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3128)

at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684)

at android.app.ActivityThread.access$2300(ActivityThread.java:125)

Android初探開機(jī)引導(dǎo)

因為需求有做開機(jī)引導(dǎo),所以簡單的學(xué)習(xí)下這塊功能的流程,并簡單的做個總結(jié)

主要參考文章:

做開機(jī)引導(dǎo),主要要做到的效果就是 只有第一次使用的時候會打開,只打開一次,當(dāng)執(zhí)行完開機(jī)引導(dǎo)的流程之后,之后開機(jī)都不會再展示

要實現(xiàn)開機(jī)引導(dǎo),那么就一定是系統(tǒng)應(yīng)用,按照原理來說,需要兩個步驟,第一,需要引導(dǎo)頁的優(yōu)先級比LAUNCHER高。第二,需要流程完畢之后執(zhí)行某些操作讓應(yīng)用下次不會啟動。

可以設(shè)置android:priority屬性,系統(tǒng)會判斷啟動priority優(yōu)先級高的。

這樣配置之后,其它應(yīng)用的優(yōu)先級如果沒有設(shè)置的話默認(rèn)就是0,這樣就會優(yōu)先打開引導(dǎo)頁。

自己可以在引導(dǎo)頁中寫自己想要做的邏輯。當(dāng)執(zhí)行完所有邏輯之后,需要配置

這里主要做了設(shè)置Settings.Global.DEVICE_PROVISIONED和Settings.Secure.USER_SETUP_COMPLETE兩個參數(shù),還有PackageManager.setComponentEnabledSetting方法禁用組件

第一個參數(shù)是組件名

第二個參數(shù)是狀態(tài)

不可用狀態(tài):COMPONENT_ENABLED_STATE_DISABLED

可用狀態(tài):COMPONENT_ENABLED_STATE_ENABLED

默認(rèn)狀態(tài):COMPONENT_ENABLED_STATE_DEFAULT

第三個參數(shù)flags

DONT_KILL_APP或者0,0表示殺死包含該組件的app

運行時會發(fā)現(xiàn)設(shè)置priority優(yōu)先級比LAUNCHER高,在開機(jī)之后也會提示讓你選擇打開應(yīng)用,而不是默認(rèn)打開優(yōu)先級高的,關(guān)于這個問題,可以參考這篇文章

只需要把應(yīng)用安裝到system/priv-app中,就能解決這個問題。正常來說一般系統(tǒng)應(yīng)用也是安裝在這么文件夾中,只是平時調(diào)試的時候會為了方便直接run,所以可能出現(xiàn)這個問題。

將應(yīng)用安裝到該文件夾中可以使用這個命令,然后重啟

看了很多文章,都沒有講到為什么要設(shè)置這兩屬性,因為要達(dá)成目的,我們只需要設(shè)置priority和調(diào)用setComponentEnabledSetting方法就行,為什么要設(shè)置這兩個參數(shù)?不設(shè)置會有什么影響。

其實簡單來說,系統(tǒng)在其他地方有用到這兩個參數(shù),舉個簡單的例子,我直接

去運行程序,能夠很明顯的測出這種情況下按Home鍵沒反應(yīng),除此之外屏保也會不顯示。

所以這兩個參數(shù)還是需要在這個地方設(shè)為1的。

如何用nfs來引導(dǎo)android

用NFS作為rootfs來啟動內(nèi)核在開發(fā)中的必備的,用nfs啟動android,也就免去頻繁的對nand燒寫操作。網(wǎng)上有很多文章,可惜都是互相copy,參考性不強(qiáng)。下面來說明如何用NFS來啟動android,具體的操作就不細(xì)說了。通常的嵌入式linux使用NFS啟動,需要啟動NFS的文件系統(tǒng)和相關(guān)網(wǎng)絡(luò)支持,這是第一步,至少內(nèi)核在最后階段能mount到FS,而mount之前網(wǎng)絡(luò)協(xié)議也必須是支持的。

內(nèi)核啟用NFS文件系統(tǒng)支持,網(wǎng)絡(luò)里面支持IP_PNP下的BOOTP,DHCP,RARP

android內(nèi)核在最后階段,是執(zhí)行RAMDISK中的init進(jìn)程來remount分區(qū),system和data也是在這個時候才掛載上的。使用NFS啟動時,要關(guān)閉內(nèi)核中的ramdisk功能。這樣,內(nèi)核啟動后,mount到NFS的目錄,然后直接執(zhí)行NFS目錄下的init進(jìn)程

準(zhǔn)備android的文件系統(tǒng)。編譯aosp代碼,最終生成system, data, root目錄,分別copy到NFS目錄下,配置NFS允許網(wǎng)絡(luò)訪問該目錄。在nfsroot目錄下,需要修改init.rc文件。里面會對system重新掛載,可以注釋掉該內(nèi)容,修改如下:

#on fs

# mount mtd partitions

# Mount /system rw first to give the filesystem a chance to save a checkpoint

#mount yaffs2 mtd@system /system

#mount yaffs2 mtd@system /system ro remount

#mount yaffs2 mtd@userdata /data nosuid nodev

#mount yaffs2 mtd@cache /cache nosuid nodev

on post-fs

# once everything is setup, no need to modify /

mount rootfs rootfs / rw remount

這里,關(guān)閉也on fs的action操作,記得把on fs也注釋掉

Android 跳過Gapps開機(jī)引導(dǎo)

Android 手機(jī)在刷了 Gapps 之后,在開機(jī)進(jìn)入系統(tǒng)時會進(jìn)入 Gapps 的開機(jī)引導(dǎo)(也就是設(shè)置 Google 帳號神馬的)。但是這需要連 Google 進(jìn)行驗證,于是。。。。。。。。

對于這種情況,可以通過以下方法解決:

這個方法就不多說了,只要能連上 Google ,就不會卡在這里了。至于怎么連 Google ,請自行尋找科學(xué)上網(wǎng)。

這個Gapps的開機(jī)引導(dǎo)是需要連網(wǎng)進(jìn)行的,默認(rèn)的情況下如果不連網(wǎng)的情況下是會自動跳過的。但是許多系統(tǒng)在默認(rèn)情況下 Wifi 和數(shù)據(jù)是會自動打開,就算把卡取了,也還會有 Wifi ,一樣無法跳過。對此,可選擇先不刷 Gapps ,進(jìn)入系統(tǒng)后將 Wifi 的數(shù)據(jù)關(guān)閉,再刷 Gapps ,此方法有一定弊端,有可能會導(dǎo)致 Gapps 某些應(yīng)用發(fā)生某些玄學(xué)問題。。。。。

在設(shè)置時,可點擊 復(fù)制數(shù)據(jù) ,而后拉到最底,點擊 離線設(shè)置 后再進(jìn)行一些設(shè)置就可進(jìn)入系統(tǒng)。(但同樣玄學(xué)的是,有時在 復(fù)制數(shù)據(jù) 里,并沒有離線設(shè)置或使用本地設(shè)置這一選項╮( ̄▽ ̄)╭)

這可能是最玄學(xué)的一個方法了,據(jù)傳連點屏幕四角就可跳過此引導(dǎo)( 順時針 方向,從左上角開始)。但是?。?!但是!??!這是檢驗血統(tǒng)的時刻,時靈時不靈。別問我是怎么知道的。 (╯‵□′)╯︵┻━┻

敲黑板?。?! 這是我所試過最科學(xué)的方法。在開機(jī)情況下,將手機(jī)連上電腦,使用 adb 工具來修改 USER_SETUP_COMPLETE 和 DEVICE_PROVISIONED 的值。具體操作如下:

最后附上測試環(huán)境:

PC: Windwos 10

Android: LineageOS 15.0 for Xiaomi Mi 5

Gapps: open_gapps-arm64-8.0-aroma-20171021

adb: 1.0.39


網(wǎng)頁標(biāo)題:android引導(dǎo),Android設(shè)置向?qū)?
URL標(biāo)題:http://weahome.cn/article/phhopg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部