2015/9/7问题集
理解 Android Build 系统
Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商的定制扩展,是非常有难度的。 但 Android Build 系统很好的解决了这些问题,这里面有很多值得我们开发人员学习的地方。
Build的参数:
、内部类:
1、Build.VERSION 各种版本字符串
2、Build.VERSION_CODES 目前已知的版本代码的枚举类
静态属性
1、BOARD 主板:The name of the underlying board, like “goldfish”.
2、BOOTLOADER 系统启动程序版本号:The system bootloader version number.
3、BRAND 系统定制商:The consumer-visible brand with which the product/hardware will be associated, if any.
4、CPU_ABI cpu指令集:The name of the instruction set (CPU type + ABI convention) of native code.
5、CPU_ABI2 cpu指令集2:The name of the second instruction set (CPU type + ABI convention) of native code.
6、DEVICE 设备参数:The name of the industrial design.
7、DISPLAY 显示屏参数:A build ID string meant for displaying to the user
8、FINGERPRINT 唯一识别码:A string that uniquely identifies this build. Do not attempt to parse this value.
9、HARDWARE 硬件名称:The name of the hardware (from the kernel command line or /proc).
10、HOST
11、ID 修订版本列表:Either a changelist number, or a label like “M4-rc20”.
12、MANUFACTURER 硬件制造商:The manufacturer of the product/hardware.
13、MODEL 版本即最终用户可见的名称:The end-user-visible name for the end product.
14、PRODUCT 整个产品的名称:The name of the overall product.
15、RADIO 无线电固件版本:The radio firmware version number. 在API14后已过时。使用 getRadioVersion()代替。
16、SERIAL 硬件序列号:A hardware serial number, if available. Alphanumeric only, case-insensitive.
17、TAGS 描述build的标签,如未签名,debug等等。:Comma-separated tags describing the build, like “unsigned,debug”.
18、TIME
19、TYPE build的类型:The type of build, like “user” or “eng”.
20、USER
Build小Demo
package com.zsz.develop.builddemo;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView tvBuild01,tvBuild02,tvBuild03,tvBuild04,tvBuild05,tvBuild06,tvBuild07;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvBuild01= (TextView) findViewById(R.id.tvBuild01);
tvBuild02= (TextView) findViewById(R.id.tvBuild02);
tvBuild03= (TextView) findViewById(R.id.tvBuild03);
tvBuild04= (TextView) findViewById(R.id.tvBuild04);
tvBuild05= (TextView) findViewById(R.id.tvBuild05);
tvBuild06= (TextView) findViewById(R.id.tvBuild06);
tvBuild07= (TextView) findViewById(R.id.tvBuild07);
tvBuild01.setText("版本号: "+ Build.VERSION.SDK_INT);
tvBuild02.setText("版本字符串号: "+ Build.VERSION.RELEASE);
tvBuild03.setText("屏幕参数: "+ Build.DISPLAY);
tvBuild04.setText("主板: "+ Build.BOARD);
tvBuild05.setText("android系统定制商: "+ Build.BRAND);
tvBuild06.setText("硬件名称: "+Build.FINGERPRINT);
tvBuild07.setText("手机制造商: "+ Build.PRODUCT);
}
}
getWindow().setFlags()设置窗体
//设置窗体全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置窗体始终点亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//设置窗体背景模糊
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
Android的kitkat是什么?
Android 4.4,是由Google公司制作和研发的代号为KitKat的手机操作系统
android4.4以后的透明状态栏一体化
//信号栏一体化
protected void initSystembarTint() {
//kitkat代表android4.4.大于4.4才可以设置这些东西
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//设置透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//设置透明导航栏
// 创建状态栏的管理实例
SystemBarTintManager tintManager = new SystemBarTintManager(this);
// 激活状态栏设置
tintManager.setStatusBarTintEnabled(true);
// 激活导航栏设置
tintManager.setStatusBarTintColor(Color.parseColor("#3B87C5"));
}
}
Android 动画(anim)
Android的animation由四种类型组成:alpha(透明度)、scale(缩放)、translate(位移)、rotate(旋转)
Animation的简单使用
实现左边进入效果
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="-100%p"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="0%p" />
</set>
实现右边退出效果
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toXDelta="-100%p"
android:toYDelta="0%p"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="100"
/>
</set>