Android 版本更新笔记 - Android 4.1

App Components

Service isolatedProcess=true  和普通进程分开,另开进程且无权限;只通过服务api进行通信;

Memory management

onTrimMemory(int level)

参数level来自ComponentCallbacks2类,有七个常量,但是主要关注下面两个:

  • TRIM_MEMORY_BACKGROUND:LRU list最上面,不太可能被系统干掉。但是应该释放一些内存了。
  • TRIM_MEMORY_MODERATE:LRU list中部,有点危险了,此时应该尽量释放内存。

onTrimMemory()方法的应用:可以参考Glide的trimMemory()方法。

lowmemorykiller干掉进程两个因素:app重要程度 及 app所占用内存大小;

在应用程序切到后台,或是系统所剩内存不足时,应尽可能释放内存,使占用内存减小,降低被系统杀死的可能性。用户再次进入app使用热启用 比 重新启动快2-3倍。

应用间的导航

考虑图一情况:

  1. Task A中有A1,A2及APP B的Activity B3;
  2. APP B没有启动,TASK B还没有创建;

此时在B3中想做向上导航,导航到B3的上级屏幕B2。配置B3Activity如下:

<activity android:name="B3Activity" android:parentActivityName=".B2Activity"/>

Android 系统在执行 onSupportNavigateUp()方法时,会根据B3Activity的parentActivityName 自动重建TASK B,如图2。

接着在B2做返回操作就可以返回到B1,即已经切换到Task B上下文中了。




请注意: 以上例子是用ActionBar方案时,系统才会自动处理。

如果想手动自己处理可以参考下面代码:

// 同应用中向上导航:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}
// 向上导航 并考虑是否创建back stack
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        Intent upIntent = NavUtils.getParentActivityIntent(this);
        if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
            // This activity is NOT part of this app's task, so create a new task
            // when navigating up, with a synthesized back stack.
            TaskStackBuilder.create(this)
                    // Add all of this activity's parents to the back stack
                    .addNextIntentWithParentStack(upIntent)
                    // Navigate up to the closest parent
                    .startActivities();
        } else {
            // This activity is part of this app's task, so simply
            // navigate up to the logical parent activity.
            NavUtils.navigateUpTo(this, upIntent);
        }
        return true;
    }
    return super.onOptionsItemSelected(item);
}
更多可参考Compat包的NavUtils类,限于篇幅,不多讲。

Multimedia

Media codecs、Record audio on cue、Timed text tracks、Audio effects(Acoustic Echo Canceler (AEC)、Automatic Gain Control (AGC) 、Noise Suppressor (NS) )

Camera

Auto focus movement、Camera sounds

Accessibility service APIs

监控与模拟操作。

Copy and paste with intents

RenderScript

RenderScript 是一种低级的高性能编程语言,用于3D渲染和处理密集型计算。

Animation

Activity launch animations

Time animator

User Interface

Notifications
Notification styles:setStyle() 
  • Notification.BigPictureStyle
  • Notification.BigTextStyle
  • Notification.InboxStyle
Notification actions、Priorities
Controls for system UI

setSystemUiVisibility()

SYSTEM_UI_FLAG_FULLSCREEN
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
SYSTEM_UI_FLAG_LAYOUT_STABLE






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛克Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值