導航:首頁 > 操作系統 > android開發啟動畫面

android開發啟動畫面

發布時間:2022-06-10 13:57:57

❶ 怎麼修改android 啟動過程中的第二個開機畫面

第一個開機畫面是在內核啟動的過程中出現的,它是一個靜態的畫面。第二個開機畫面是在init進程啟動的過程中出現的,它也是一個靜態的畫面。第三個開機畫面是在系統服務啟動的過程中出現的,它是一個動態的畫面。無論是哪一個畫面,它們都是在一個稱為幀緩沖區(frame buffer,簡稱fb)的硬體設備上進行渲染的。接下來,我們就分別分析這三個畫面是如何在fb上顯示的。
1. 第一個開機畫面的顯示過程
Android系統的第一個開機畫面其實是linux內核的啟動畫面。在默認情況下,這個畫面是不會出現的,除非我們在編譯內核的時候,啟用以下兩個編譯選項:
CONFIG_FRAMEBUFFER_CONSOLE
CONFIG_LOGO
第一個編譯選項表示內核支持幀緩沖區控制台,它對應的配置菜單項為:Device Drivers ---> Graphics support ---> Console display driver support ---> Framebuffer Console support。第二個編譯選項表示內核在啟動的過程中,需要顯示LOGO,它對應的配置菜單項為:Device Drivers ---> Graphics support ---> Bootup logo。配置Android內核編譯選項可以參考在Ubuntu上下載、編譯和安裝Android最新內核源代碼(Linux Kernel)一文。
幀緩沖區硬體設備在內核中有一個對應的驅動程序模塊fbmem,它實現在文件kernel/goldfish/drivers/video/fbmem.c中,它的初始化函數如下所示:

/**
* fbmem_init - init frame buffer subsystem
*
* Initialize the frame buffer subsystem.
*
* NOTE: This function is _only_ to be called by drivers/char/mem.c.
*
*/

static int __init
fbmem_init(void)
{
proc_create("fb", 0, NULL, &fb_proc_fops);

if (register_chrdev(FB_MAJOR,"fb",&fb_fops))
printk("unable to get major %d for fb devs\n", FB_MAJOR);

fb_class = class_create(THIS_MODULE, "graphics");
if (IS_ERR(fb_class)) {
printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class));
fb_class = NULL;
}
return 0;
}
這個函數首先調用函數proc_create在/proc目錄下創建了一個fb文件,接著又調用函數register_chrdev來注冊了一個名稱為fb的字元設備,最後調用函數class_create在/sys/class目錄下創建了一個graphics目錄,用來描述內核的圖形系統。

模塊fbmem除了會執行上述初始化工作之外,還會導出一個函數register_framebuffer:

EXPORT_SYMBOL(register_framebuffer);
這個函數在內核的啟動過程會被調用,以便用來執行注冊幀緩沖區硬體設備的操作,它的實現如下所示:

/**
* register_framebuffer - registers a frame buffer device
* @fb_info: frame buffer info structure
*
* Registers a frame buffer device @fb_info.
*
* Returns negative errno on error, or zero for success.
*
*/

int
register_framebuffer(struct fb_info *fb_info)
{
int i;
struct fb_event event;
......

if (num_registered_fb == FB_MAX)
return -ENXIO;

......

num_registered_fb++;
for (i = 0 ; i < FB_MAX; i++)
if (!registered_fb[i])
break;
fb_info->node = i;
mutex_init(&fb_info->lock);
fb_info->dev = device_create(fb_class, fb_info->device,
MKDEV(FB_MAJOR, i), NULL, "fb%d", i);
if (IS_ERR(fb_info->dev)) {
/* Not fatal */
printk(KERN_WARNING "Unable to create device for framebuffer %d; errno = %ld\n", i, PTR_ERR(fb_info->dev));
fb_info->dev = NULL;
} else
fb_init_device(fb_info);

......

registered_fb[i] = fb_info;

event.info = fb_info;
fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event);
return 0;
}
由於系統中可能會存在多個幀緩沖區硬體設備,因此,fbmem模塊使用一個數組registered_fb保存所有已經注冊了的幀緩沖區硬體設備,其中,每一個幀緩沖區硬體都是使用一個結構體fb_info來描述的。

❷ Android開發,第一次安裝打開APP時的歡迎界面為viewPage,以後打開歡迎界面只是一個簡單界面

簡單來說 就是第一次啟動的時候在本地新建一個sp文件。。然後存入一個值 標明是否是第一次啟動。。。代碼:

SharedPreferences sp = getSharedPreferences("data", MODE_PRIVATE);
boolean isFirst = sp.getBoolean("isFirst", true);
if (isFirst == true) {
SharedPreferences.Editor edit = sp.edit();
edit.putBoolean("isFirst", false);
//應用首次啟動
} else {
//應用非首次啟動
}

應該是這樣的。。。

❸ Android開發怎麼設置一個歡迎界面為app的進入界面

這個設置首頁啟動界面即可,因為mainactivity在清單文件(manifest)中是首頁啟動,把<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>這個放到你要登錄界面的(也是清單文件中的登錄activity)

❹ android程序開發 啟動畫面顯示不了!!!急!

開始動畫不是你這樣寫的,休眠的主線程是不科學的,教你一個辦法,你知道動畫吧,你給這個Activity設置一個Animation可以是縮放,漸變之類的,然後動畫可以設置時間長度,還可以設置監聽事件,包括動畫開始,動畫結束,還有一個忘了,在動畫結束這個事件觸發的時候你就可以啟動下一個Activity了 ,這樣還增加了初始界面的美觀

❺ 如何創建啟動界面Splash Screen

啟動界面Splash Screen在應用程序是很常用的,往往在啟動界面中顯示產品Logo、公司Logo或者開發者信息,如果應用程序啟動時間比較長,那麼啟動界面就是一個很好的東西,可以讓用戶耐心等待這段枯燥的時間。

Android 應用程序創建一個啟動界面Splash Screen非常簡單。比如創建一個工程MySample,主Acitity就叫MySample,創建另一個Activity叫 SplashScreen,用於顯示啟動界面,資源文件為splash.xml。至於如何製作SplashSceen界面,這不是本文章要討論的東西,就此略過。

SplashScreen的代碼如下:
package com.ctoof.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

public class SplashScreen extends Activity {
protected boolean _active = true;
protected int _splashTime = 5000;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);

Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep(100);
if(_active) {
waited += 100;
}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
// 啟動主應用
startActivity(new Intent("com.ctoof.android.MySample.MyApp"));
stop();
}
}
};
splashTread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
_active = false;
}
return true;
}
}
然後在AndroidMainfest.xml中修改代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=""
package="com.ctoof.android"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SplashScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyApp">
<intent-filter>
<action android:name=" com.ctoof.android. MySample.MyApp " />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>

在這里負責注冊兩個活動。把負責管理啟動界面Splash Screen的活動Activity作為應用程序的主活動,然後在SplashScreen中負責啟動MyApp。

另:
很多應用都會有一個啟動界面。歡迎畫面慢慢隱現,然後慢慢消隱。實現這種效果的方法有兩種(暫時只發現兩種)
1、使用兩個Activity,程序啟動時候load第一張Activity,然後由tick觸發N秒鍾後startActivity另外一張Activity。
2、使用一個Activity,可以用到View.gone() 這個方法。把Acitivity的某些元素移除。
Java代碼
public class Splash extends Activity {

private final int SPLASH_DISPLAY_LENGHT = 3000; //延遲三秒

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
new Handler().postDelayed(new Runnable(){

@Override
public void run() {
Intent mainIntent = new Intent(Splash.this,Main.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}

}, SPLASH_DISPLAY_LENGHT);
}
}
當然可以再Splash中加入動畫效果。

❻ Android Studio啟動安卓虛擬機一直卡在開機畫面是怎麼回事

android studio的虛擬機啟動卡在開機畫面的原因有可能是:
1.HAX默認的最大值是1GB,但是AS自帶的那個虛擬機的值是1.5GB,所以HAX是不開啟的,可以查看一下RUN那邊的輸出。HAX正確開啟的時候,會輸出一行紅色的字:HAX is working and emulator runs in fast virt mode。HAX未開啟的時候,會提示修改AVD的內存設置。
所以可以在虛擬機的設置畫面進行設置為1.5GB。
2.後台已經有一個虛擬機的進程adb.exe,需要進入任務管理器,強制停止,重新開啟一個avd虛擬機。
android studio自帶的虛擬機一般速度很慢,建議下載一些商業免費的虛擬機,有bluestacks、夜神,載入速度很快,而且集成了手勢的功能,可以進行android手機的開發。

❼ 安卓開發軟體歡迎界面怎麼做

安卓開發軟體歡迎界面的代碼如下:

1、製作一張啟動圖片splash.png,放置在res->drawable-hdpi文件夾中。
2、新建布局文件splash.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash" >

<TextView
android:id="@+id/versionNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="26dp"
android:layout_marginRight="52dp"
android:text="version 1.0"
android:textColor="" />
</RelativeLayout>
這里我們把上一步製作的圖片作為啟動界面的背景圖,然後在界面底部顯示當前程序的版本號。
3、新建SplashActivity,在Oncreate中添加以下代碼:

PackageManager pm = getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo("com.lyt.android", 0);
TextView versionNumber = (TextView) findViewById(R.id.versionNumber);
versionNumber.setText("Version " + pi.versionName);
} catch (NameNotFoundException e) {
e.printStackTrace();
}

new Handler().postDelayed(new Runnable(){

@Override
public void run() {
Intent intent = new Intent(SplashActivity.this,SplashScreenActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}

}, 2500);
4、 修改Manifest文件,將啟動界面Activity改為默認啟動,並且設置標題欄不可見。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sinaweibo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity1"
android:label="@string/title_activity_main_activity1" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
這樣打開應用後等待2.5秒就進入第二個activity MainActivity了。

❽ android 應用程序的啟動畫面怎麼做

圖片放在項目下/res/drawable下,有三個分別對應大中小圖片;
如果要現實圖片的話需要聲明一個圖像對象,例如
在Layout 下.xml文件里寫android:background="@drawable/bgdefault"
就是引用圖片了;
安卓應用程序圖標在AndroidManifest.xml內
<application
android:icon="@drawable/start"
只要改掉start換成你放在drawable內的圖片名字就換了,但是尺寸有要求,80*80還是什麼根據你自己需要

❾ android開發 啟動畫面背景怎麼添加

android軟體開發中,添加合適的背景圖片,會使效果更好。但是,如何添加背景圖片呢,下面是具體步驟。
1、打開你的安卓開發軟體。
2、新建一個工程。例如工程名ty。
3、打開左側的工程文件夾。打開res中的layout,雙擊main.xml.
4、下面要添加圖片到工程里。下載或者在本地上找到一張需要的圖片。
5、先把圖片剪切一下,長寬要適合顯示屏幕。
6、看好,一般的圖片都是jpg格式的。一定要把格式轉化為png格式的。
7、把轉化後的圖片拖到工程中res中的drawable-hdpi中。

❿ 如何修改Android開機畫面

Android系統開機動畫包括兩部分: 開機顯示的 ANDROID 文字; ANDROID發光動畫。 這篇文章說的開機動畫是第一種,下面開始正文! 1. 製作當前屏幕像素的圖片(模擬器默認為320*480) 使用PS製作一張320*480的圖片,保存時選「保存為 Web 所用格式」,然後在彈開的窗口上,「預設」項選擇「PNG-24」,保存為android_logo.png 註:好像只支持png-24,其他格式生成的rle文件顯示不正常,有興趣大家可以再驗證一下。 2. 將圖片轉換為raw格式 使用linux下的ImageMagick自帶的convert命令,進行raw格式轉換,命令為: convert -depth 8 android_logo.png rgb:android_logo.raw 註:ubuntu 10.04 默認已經安裝ImgageMagick工具,如果當前系統沒有安裝,可以執行下面的命令安裝: sudo apt-get install imagemagick 3. 將raw格式轉化為rle文件 需要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android為當前源碼所在目錄),轉換命令如下: rgb2565 -rle < android_logo.raw > initlogo.rle 到目前為止,啟動需要顯示的圖像已經做好了,就是initlogo.rle,注意文件名必須是這個,如果想改文件名,需要修改android/system/core/init/init.h中的宏: #define INIT_IMAGE_FILE "/initlogo.rle" 下面需要將initlogo.rle加入的android文件系統中 4. 找到ramdisk.img文件(android/out/target/proct/generic/ramdisk.img),將文件名改為ramdisk.img.gz,然後使用下面的命令解壓: gunzip ramdisk.img.gz 解壓後得到ramdisk.img,可能有人要問,怎麼文件名又改回去了?其實不然,使用file ramdisk.img查看一下就知道了: 解壓前:ramdisk.img: gzip compressed data, from Unix 解壓後:ramdisk.img: ASCII cpio archive (SVR4 with no CRC) 跑題了,還是說正事兒。 5. 使用cpio提取文件: 新建一個temp目錄: mkdir temp cd temp cpio -i -F ../ramdisk.img 6. 導出文件列表: cpio -i -t -F ../ramdisk.img > list 註:list是一個文本文件,裡面存儲了ramdisk.img的文件結構,我們需要在這個文件中加入initlogo.rle這一行,修改後的文件如下: data default.prop dev init init.goldfish.rc init.rc initlogo.rle proc sbin sbin/adbd sys system 7. 生成ramdisk.img cpio -o -H newc -O ramdisk.img < list 註:根據list文件的描述,生成ramdisk.img文件 8. 用ramdisk.img覆蓋sdk目錄下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先備份一下。 9. 啟動模擬器,就可以看到我們自己做的的開機界面了。對我有用(1)對我沒用(5)0

閱讀全文

與android開發啟動畫面相關的資料

熱點內容
手機程序加密有什麼作用 瀏覽:178
求黑馬程序員python教程 瀏覽:528
androidmvvm優缺點 瀏覽:894
unix下編譯庫文件 瀏覽:633
程序員的u盤 瀏覽:237
android根據經緯度獲取城市 瀏覽:564
python使用解釋器還是編譯器 瀏覽:358
以下關於有加密演算法及密鑰描述 瀏覽:219
linuxgethostname 瀏覽:416
程序員多數有對象 瀏覽:131
單片機延時程序計算 瀏覽:444
編譯原理語法翻譯 瀏覽:504
pr編譯出錯渲染存在偏移 瀏覽:262
如何製作自家的app 瀏覽:199
推薦一個解壓軟體rar解壓幫手 瀏覽:210
wd文檔加密器 瀏覽:748
伺服器上傳壓縮包一般是什麼格式 瀏覽:333
發送加密文件密碼幾位數 瀏覽:160
樹洞app怎麼樣 瀏覽:175
vivo編譯時間可以改么 瀏覽:150