首页 文章 精选 留言 我的

精选列表

搜索[google],共10000篇文章
优秀的个人博客,低调大师

Google 正秘密开发第三款操作系统 Fuchsia

谷歌永远都不是一个只为市场拿出单一产品的公司,很显然该公司正努力打造其继Android和Chrome OS之后的第三款操作系统。这是一款开源的、实时操作系统,被其称作Fuchsia。与Android和Chrome OS不同,Fuchsia不是基于Linux,它使用一个全新的、由谷歌开发的微内核,称作“Magenta”。 该OS首次现身是在去年8月,之后就没有任何消息了。据Arstechnica发现,Fuchsia系统拥有一组很疯狂的UI设计,称作Armadillo(犰狳)。 谷歌重新开发全新的操作系统有可能是为了替换掉之前的Android系统,虽然Android毫无疑问已经超越苹果的iOS成为第一大移动OS,但其一直以来都存在两个最大的问题: 1、在第三方硬件生态系统中推出操作系统的更新 2、缺少顺滑的用户界面性能 看来,谷歌也早已经意识到这两个问题,而Fuchsia系统就是谷歌对苹果的回应。当然,谷歌还需要很长一段路要走,而要看到Fuchsia系统加载的产品最早也得是2020年。 本文来自开源中国社区 [http://www.oschina.net]

优秀的个人博客,低调大师

Google官方关于Android架构中MVP模式的示例续-DataBinding

基于前面的TODO示例,使用Data Binding库来显示数据并绑定UI元素的响应动作。 这个示例并未严格遵循 Model-View-ViewModel 或 Model-View-Presenter 模式,其中既有View Model,也有Presenter。 用到的Data Binding库保存样板代码,该代码允许将UI元素绑定到Data Model的一个属性。 布局文件中直接绑定数据到UI元素上 事件也与动作Handler进行绑定 数据可以被监听并根据需要自动同步更新 数据绑定 在上个例子中,Task描述在TaskDetailFragment中被设置: public void onCreateView(...) { ... mDetailDescription = (TextView) root.findViewById(R.id.task_detail_description); } @Override public void showDescription(String description) { mDetailDescription.setVisibility(View.VISIBLE); mDetailDescription.setText(description); } 本示例中,TaskDetailFragment会很潇洒的将Task数据传递给Data Binding层: @Override public void showTask(Task task) { mViewDataBinding.setTask(task); } 该库还会考虑到数据的显示问题,只要在布局中定义一下即可: (taskdetail_frag.xml) <TextView android:id="@+id/task_detail_description" ... android:text="@{task.description}" /> 事件绑定 数据绑定消除了findViewById(),而事件绑定则用于最小化 setOnClickListener(). taskdetail_frag.xml文件中的CheckBox,当用户触摸它时,Presenter直接被调用: <CheckBox android:id="@+id/task_detail_complete" ... android:checked="@{task.completed}" android:onCheckedChanged="@{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}" /> 监听数据(Observing data) 显示任务列表的视图层(TasksFragment)只需知道列表数据为空,以便显示恰当的提示消息。它用到TasksViewModel来给布局提供该信息。当列表大小被赋值时,只有相关属性会被通知且绑定到这些属性的UI元素会被更新。 public void setTaskListSize(int taskListSize) { mTaskListSize = taskListSize; notifyPropertyChanged(BR.noTaskIconRes); notifyPropertyChanged(BR.noTasksLabel); notifyPropertyChanged(BR.currentFilteringLabel); notifyPropertyChanged(BR.notEmpty); notifyPropertyChanged(BR.tasksAddViewVisible); } 功能组件 用DataBinding库可以有多种方式来创建相关。本示例中,每个组件的职责为: Activity: 对象创建入口 Fragment: 与Android框架中的组件交互 (options menu, Snackbar, FAB, Adapter for list…) Presenter: 接收用户动作并从数据仓库中检索数据。如果它进行数据加载的工作,则去调用一个动作处理类来完成 (TasksItemActionHandler) ViewModel: 暴露数据给指定视图 有些功能没有用到 ViewModel (TaskDetail, AddEditTask) ,这时他们是直接使用Task模型的 依赖 Data Binding 库. 特征(译:废话就不再翻译了) 可测试性 单元测试 UI测试 代码量 可维护性 增添特性容易 学习成本 https://github.com/googlesamples/android-architecture/tree/todo-databinding/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册