当前位置:  编程技术>移动开发
本页文章导读:
    ▪opengles 2.0 点染Yuv视频        opengles 2.0 渲染Yuv视频opengles 2.0 渲染Yuv视频, 解决转换效率问题. 需要的直接联系. 1楼caucy2008前天 15:11真心需求,可否发到caucy2002@163.com;n参考一下;Re: weinyZhou昨天 11:37回复caucy2008n不好意思,这.........
    ▪ Layout_margn与padding的差异        Layout_margn与padding的区别学习android有好长时间了,今天发现有两对属性非常容易弄混淆,那就是Layout_margn  与padding  、layout_grivaty 与grivaty,我们先来看下图layuout_margn与padding的区别: 注: l.........
    ▪ initramfs文件系统的打造及根文件系统(busybox-1.20.2)       initramfs文件系统的制作及根文件系统(busybox-1.20.2)initramfs文件系统的意义:本人主要用来在内存中运行根文件系统,将文件系统解压到falsh的指定位置~当然可以用来做sd卡的自动升级方案! .........

[1]opengles 2.0 点染Yuv视频
    来源: 互联网  发布时间: 2014-02-18
opengles 2.0 渲染Yuv视频

opengles 2.0 渲染Yuv视频,

解决转换效率问题.

需要的直接联系.

1楼caucy2008前天 15:11真心需求,可否发到caucy2002@163.com;n参考一下;Re: weinyZhou昨天 11:37回复caucy2008n不好意思,这部分需要付费购买

    
[2] Layout_margn与padding的差异
    来源: 互联网  发布时间: 2014-02-18
Layout_margn与padding的区别

学习android有好长时间了,今天发现有两对属性非常容易弄混淆,那就是Layout_margn  与padding  、layout_grivaty 与grivaty,我们先来看下图layuout_margn与padding的区别:


注:

layout_margn是指组件距离父窗体的距离,而padding是指组件中的内容距离组件边缘的距离

与子对应的Layout_grivaty与grivaty这两者有点相似,layout_grivaty是指组件相对父窗体显示的位置,而grivaty是用来控制组件中的内容显示位置:比如

layout_grivaty="center_vertical|center_horizontal";表示组件显示是水平居中且垂直居中也就是组件位于屏幕的正中央

android:gravity="center_vertical|center_horizontal"表示组件中的内容显示位置是正中央。

我们也可以这样来理解,layout_margn与layout_grivaty都与布局有关,控制组件在屏幕中的显示位置

                                          padding与grivaty都是用来控制内容在组件中的显示位置

那么,layout_margn与layout_grivaty有什么区别呢?grivaty与padding又有什么区别呢?

       区别:layout_grivaty与grivaty的值都是给定的,我们只能在这些给定的属性中选择

                   layout_margn与padding的值我们可以任意给,相对于layout_grivaty和grivaty更灵活,我们根据需要选择合适的属性。


下面来看两个实例:



标题使用的属性:android:gravity="center_vertical|center_horizontal"


button1使用的属性:android:paddingRight="40dip"


button2使用的属性是:android:layout_marginLeft="40dp"



1楼Sunboy_20504天前 22:31十一也不出去玩。。。Re: qq4357573994天前 11:14回复Sunboy_2050n家里有生意,得照顾生意啊!呵呵Re: Sunboy_20504天前 13:39回复qq435757399n喔,,,原来是做大买卖的哦

    
[3] initramfs文件系统的打造及根文件系统(busybox-1.20.2)
    来源: 互联网  发布时间: 2014-02-18
initramfs文件系统的制作及根文件系统(busybox-1.20.2)

initramfs文件系统的意义:本人主要用来在内存中运行根文件系统,将文件系统解压到falsh的指定位置~当然可以用来做sd卡的自动升级方案!

 

硬件平台:VMware+ubuntu10.04+友坚UT6410系列皆可

软件:busybox-1.20.2(busybox-1.20.1也可)

交叉编译工具:arm-linux-gcc-4.3.2.tar.bz2(arm-linux-gcc-4.3.3.tar.gz测试通过,但arm-linux-gcc-4.5.1.tar.gz不行)

 

步骤:

     1、建立交叉编译环境将arm-linux-gcc-4.3.2.tar.bz2解压到/usr/local/arm下面,再终端中设置环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin/

(其他设置方法如将上句添加到/etc/profile,最好设置为全局的否则后来还有莫名的问题)

     2、解压busybox-1.20.2

     3、进入busybox,并配置busybox

            a、make defconfig(默认配置)

            b、make menuconfig

                        Busybox Settings  --->Build Options  --->(/usr/local/arm/4.3.2/bin/arm-linux-) Cross Compiler prefix

                        Busybox Settings  --->General Configuration  --->[*] Don't use /usr  

             我就修改了这两条其他都是默认,如果想知道没条定义请百度吧!

      4、编译、安装

             a、make

             b、make install(由于前面没设置安装位置将默认安装在本文件夹的_install文件夹下)

      5、进入_install建立其他根文件系统文件夹.我写了个脚本creat_initramfs.sh

#!/bin/sh
echo "--------Create root,dev......"
mkdir root dev etc bin sbin mnt sys proc lib home tmp var usr
mkdir usr/sbin usr/bin usr/lib usr/modules usr/etc
mkdir mnt/usb mnt/nfs mnt/etc mnt/etc/init.d
mkdir lib/modules
chmod 1777 tmp

sudo mknod -m 600 dev/console c 5 1
sudo mknod -m 666 dev/null c 1 3

echo "-------make direction done---------"

 

然后保存脚本修改权限:chmod +x creat_initramfs.sh

运行脚本!

 

“etc”目录

用来存放系统的配置文件。

在“etc”目录下面有如下常用的文件:

fstab:指明需要挂载的文件系统;

group:用户组;

inittab:init 进程的配置文件;

passwd:密码文件;

profile:用户环境配置文件;

mdev.conf:因为2.6.18 版本开始linux 放弃使用devfs 而采用udev(mdev 是udev 的简化版本),这里的

mdev.conf 文件可以是空,也可以按照一定规则来编写,这里我采用了为空;

resolv.conf:存放DNS 信息的文件,访问外网时需要DNS 的信息。

常用的目录有:

init.d 目录:启动文件目录,该目录下面有个“rcS”的文件,里面存放了系统启动时配置以及自启动加载

的进程等;

sysconfig 目录:在我们的文件系统里面,该目录下面存放了名为“HOSTNAME”的文件,该文件内容为:

hcm,这句话就是我们在文件系统里面看到那个“[root@ hcm/]” rc.d 目录:在我们的文件系统里面用来存放一些自启动所要调用的脚步等;

 

 

 

       6、建立相关文件

            vi etc/profile

# Ash profile
# vim: syntax=sh

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH

HOSTNAME=`/bin/hostname`

export USER LOGNAME PS1 PATH

 

          vi etc/init.d/rcS

#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
/bin/hostname hcm

/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys
/bin/mount -n -t usbfs none /proc/bus/usb
/bin/mount -t ramfs none /dev

echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
/bin/hotplug
# mounting file system specified in /etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none /dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
/bin/mount -n -t ramfs none /tmp
/bin/mount -n -t ramfs none /var
mkdir -p /var/empty
mkdir -p /var/log
mkdir -p /var/lock
mkdir -p /var/run
mkdir -p /var/tmp

/sbin/hwclock -s -f /dev/rtc

syslogd
/etc/rc.d/init.d/netd start
echo "                        " > /dev/tty1
echo "Starting networking..." > /dev/tty1
#sleep 1
#/etc/rc.d/init.d/httpd start
#echo "                        " > /dev/tty1
#echo "Starting web server..." > /dev/tty1
#sleep 1
#/etc/rc.d/init.d/leds start
#echo "                        " > /dev/tty1
#echo "Starting leds service..." > /dev/tty1
#echo "                        "
#sleep 1
echo "*************************************"
echo "     Welcome to Root FileSystem!     "
echo "                                     "
echo "     http://write.blog.csdn.net/postlist          "
echo "*************************************"


mkdir /mnt/disk
mount -t yaffs2 /dev/mtdblock3 /mnt/disk

mount -t vfat /dev/mmcblk0p1 /home/
mount -t yaffs2 /dev/mtdblock3 /mnt/
cd /mnt/
tar zxvf /home/urbetter-rootfs-qt-2.2.0.tgz
sync
cd /
umount /mnt/
umount /home/


/sbin/ifconfig lo 127.0.0.1

chmod +x etc/init.d/ifconfig-eth0
/etc/init.d/ifconfig-eth0

/bin/qtopia &
echo "                                  " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1
echo "                                  "
echo "Starting Qtopia, please waiting..."

修改权限:chmod +x /etc/init.d/rcS

否则会出现:can't open /dev/tty2: No such file or directory

若修改权限还有问题则:
解决办法:

 ln -sf /dev/null /dev/tty2
 ln -sf /dev/null /dev/tty3
 ln -sf /dev/null /dev/tty4

 

                      vi etc/fstab

proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
none /var ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0

 

                       vi etc/inittab


::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::shutdown:/bin umount -a -r
::shutdown:/sbin/swapoff -a

 

                      vi usr/etc/init
#!/bin/sh
ifconfig eth0 192.168.3.111 up
ifconfig lo 127.0.0.1

 修改权限:chmod +x usr/etc/init

                     

                        vi mdev.conf(空文件)

 

             7、拷贝相应工具链中的库文件到lib当中

                     hcm@hcm-desktop:~/hcm/busybox-1.20.2/_install$ cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/*so* lib

             8、制作initramfs最重要的一步,因为initramfs运用的连接文件为init而不是linuxrc所以将linuxrc更名为init,这样initramfs文件就制作成功了!

             9、将制作的initramfs文件系统包含进内核实验

                          General setup  --->   (/home/hcm/hcm/busybox-1.20.1/_install) Initramfs source file(s) 

                        (至于其他选项默认的都已经选中,如果不行可以搜索下网上很多讲解)  

              10、make

             11、dnw c0008000

                     bootm c0008000即可进入根文件系统

 

最后进入根文件系统是没问题的,但是进入终端会出现unknown id 0这是在etc/下面缺少passwd、group文件(这两个文件可以拷贝pc linux上的)

 

                vi  etc/passwd

root::0:0:root:/:/bin/sh
ftp::14:50:FTP User:/var/ftp:
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
nobody:*:99:99:Nobody:/:
plg:$1$wwtsqwnk$sWaEJGcJFTqaCW18sbUK7/:502:502:Linux User,,,:/home/plg:/bin/sh
              

 

 

 

 

 

 

 

             

 

 

 

 

 

 

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3