标签: android-3.0-honeycomb

Android垃圾收集器的技术细节

当我正在研究各种移动平台的共性/差异时,正在研究的一个方面是内存管理.因此,我对各种机制的更详细的技术信息感兴趣.

具体来说,例如Android使用哪种垃圾收集器类型
([Google Groups Discussion]建议它使用"跟踪"机制 - 但我很欣赏我可以引用的"更官方"来源,并希望在那里找到类型可能对程序员产生影响的信息.

我的问题还在于,Android 3.0(Honeycomb)中的GC如何被专门调整以利用多个处理器的
[Android Devevelopers Guide]建议

Android 3.0是该平台的第一个版本,旨在在单核或多核处理器架构上运行.Dalvik VM,Bionic库和其他地方的各种变化增加了对多核环境中对称多处理的支持.这些优化可以使所有应用程序受益,即使是那些单线程的应用程序.例如,如果Dalvik垃圾收集器在第二个核心上运行,则使用两个活动核心,单线程应用程序可能仍会看到性能提升.系统会自动安排."

和以前一样,我宁愿找到一个有更多技术信息的来源来阅读.同样,对开发人员的影响是什么(除了明显可以提高性能之外)?

任何此类输入都表示赞赏.

谢谢!

multithreading android garbage-collection android-3.0-honeycomb

26
推荐指数
1
解决办法
1万
查看次数

Android加载器,要走的路?

我习惯使用适配器在android中构建列表.如果我需要一些长期获取的数据,我使用asynctask或简单的runnable来更新适配器所依赖的数据结构,并在适配器上调用notifyDataChanged.

虽然它并不简单,但我终于发现这是一个简单的模型,它允许逻辑表示(在asynctask中,更新数据结构)和视图(主要用作视图工厂的适配器)的良好分离.

不过,我最近读到了关于HoneyComb中引入的加载器并包含在向后兼容性支持库中,我尝试了它们并发现引入了很多复杂性.它们很难处理并通过装载程序管理器为整个过程添加某种魔力,添加大量代码并且不减少类或协作项目的数量,但我可能错了,并希望听到一些关于装载机.

  • 在代码行,清晰度和工作量方面,它们在加载器方面有哪些优势?
  • 在数据加载过程中角色分离方面,或者更广泛地说,在设计方面,加载程序的优势是什么?
  • 它们是要走的路,我应该替换所有列表数据加载以通过加载器实现它们吗?

好的,这是一个开发者论坛,所以这是一个例子.请用装载机做得更好:

package com.sof.test.loader;

import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.TextView;

/** The activity. */
public class LoaderTestActivity extends ListActivity {

    private DataSourceOrDomainModel dataSourceOrDomainModel = new DataSourceOrDomainModel();
    private List<Person> listPerson;
    private PersonListAdapter personListAdapter;
    private TextView emptyView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        listPerson = new ArrayList<Person>();
        personListAdapter = new PersonListAdapter( listPerson ); …
Run Code Online (Sandbox Code Playgroud)

android list android-3.0-honeycomb android-4.0-ice-cream-sandwich

26
推荐指数
2
解决办法
7511
查看次数

CursorLoaders有什么好处?

Cursors在我的应用程序中广泛使用,加载并偶尔从数据库写入信息.我已经看到Honeycomb和兼容包有新的Loader类,旨在帮助以"良好"的方式加载数据.

从本质上讲,这些新类(特别是CursorLoader)比以前的数据管理方法要好得多吗?例如,CursorLoader过度管理有什么好处Cursors

我使用a ContentProvider处理数据,这显然需要Uris但是如何与initLoader()方法相结合?我必须设置每个Fragments人单独使用装载机吗?并且每个加载器的id需要多么独特,它是在我的应用程序范围内还是仅仅是一个片段?有没有简单的方法简单地传递Uri给CursorLoader来查询我的数据?

我现在所能看到的是,Loaders添加了一个不必要的额外步骤来将我的数据导入我的应用程序,那么有人可以更好地向我解释它们吗?

android cursor android-3.0-honeycomb android-loadermanager

25
推荐指数
2
解决办法
2万
查看次数

Android 3.0上的HLS(http直播)和寻求

我们有一个提供商,为HLS流提供m3u8文件(最初用于iOS应用程序).

Android 3.0+支持http直播(http://developer.android.com/guide/appendix/media-formats.html) - 我们实际上可以使用Android 3.0+上的标准VideoView播放这些m3u8文件.

编辑:Android似乎将此视为"实时"视频Feed,并禁用查找或计算视频时长的功能.(在iOS中,你可以在流中搜索而没有问题)

有没有办法迫使android 3.0+在这些文件中寻找?

以下是其他人要测试的示例活动:

import android.app.Activity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class SandboxActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        VideoView vw = (VideoView) findViewById(R.id.videoView);
      vw.setVideoPath("http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8"); 
        vw.setMediaController(new MediaController(this));
        vw.requestFocus();
        vw.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

和样本布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" android:id="@+id/root">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是使用Apple的示例HLS链接.

android http-live-streaming android-3.0-honeycomb

25
推荐指数
2
解决办法
1万
查看次数

更改ActionBar隐藏动画?

默认情况下,在Android 3.0+中,当调用ActionBar.hide()/ show()时,条形图会以简短的淡入/淡出动画进行动画处理.

此列表中似乎没有与动画资源关联的XML样式属性.

有没有办法改变这个动画?在我的情况下,我只是想改变动画时间,但是也可以有滑动动画吗?

android android-animation android-3.0-honeycomb android-actionbar

24
推荐指数
2
解决办法
2万
查看次数

将片段显示为对话框或通常的活动

在我的应用程序中,我有一个名为"关于"的片段.在手持设备上我希望这个片段看起来像一个普通的活动,但在平板电脑上,我希望它是一个对话框.哪种方式更适合处理这种情况?

android fragment android-3.0-honeycomb

24
推荐指数
1
解决办法
1万
查看次数

使用v4 Fragments API实现ActionBar选项卡

我的应用程序目前正在使用Fragments/v4兼容包来支持Android版本,一直到1.6.这意味着我的所有Fragment都继承自兼容包的版本Fragment.我目前正在尝试重做部分应用程序以利用Honeycomb功能,例如ActionBar.

我已经在3.0之前的设备上使用了我自己的动作栏实现,否则就使用了Honeycomb Action Bar.这个位不是问题.

我遇到的问题是尝试使用ActionBar实现标签.ActionBar.TabListener期望本机FragmentFragmentTransaction类工作 - 所以尝试使用我的Fragment类(继承自兼容性库)不会编译.

因此,没有任何人有任何想法如何,我可以用使用的兼容包版本碎片FragmentActionBar标签?

tldr:如何将ActionBar选项卡与从v4兼容性库继承的片段一起使用?

tabs android android-3.0-honeycomb android-actionbar

23
推荐指数
1
解决办法
1万
查看次数

如何自定义动作模式的颜色和文字?

默认操作模式(3.0及更高版本)左侧带有绿色主题和"完成"按钮.我该如何定制这些?

谢谢

android android-3.0-honeycomb android-actionbar android-actionmode

23
推荐指数
4
解决办法
3万
查看次数

ActionBar中的ProgressBar,例如带有Refresh的GMail应用程序

我想和Honeycomb平板电脑上的GMail应用程序做同样的事情.单击"刷新"按钮时,图标将替换为ProgressBar.我怎样才能做到这一点?

谢谢

gmail android tablet android-3.0-honeycomb progress-bar

23
推荐指数
3
解决办法
2万
查看次数

强制操作栏显示搜索视图

我可以通过这样的动作扩展搜索视图

<item android:id="@+id/menu_search"
          android:title="Search"
          android:showAsAction="never|collapseActionView"
          android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

但我有一个3-tab活动,我想SearchView总是扩展我该怎么办?

android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar

22
推荐指数
1
解决办法
2万
查看次数