导航:首页 > 操作系统 > 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开发启动画面相关的资料

热点内容
iphone如何快速分组app 浏览:785
程序员喝的纯牛奶 浏览:251
nginxphpupload 浏览:111
汽车单片机技术教学大纲 浏览:848
解压视频白头小哥 浏览:748
cadq命令 浏览:956
python连接本地数据库报错 浏览:194
手机模拟加密禁卡操作 浏览:105
电荷数怎么算法 浏览:589
cad如何打开命令行 浏览:151
php图片限制大小 浏览:164
程序员一夜未归 浏览:593
苹果xsmaxapp怎么不显示更新 浏览:600
苹果app怎么清除角标 浏览:483
解压屁屁玩具脏了怎么办 浏览:670
算法识别自动折叠 浏览:10
dos命令遍历文件 浏览:456
翻译整个pdf 浏览:198
怎么给解压软件授权 浏览:622
怎么换手机桌面壁纸安卓 浏览:957