2016年4月

在使用PagerAdapter时的坑


坑的源头

在fragment中使用

public void onStart() {
        super.onStart();
        mAdapter = new TrackGetFragmentPagerAdapter(getChildFragmentManager());
        tabLayout = (TabLayout) mainView.findViewById(R.id.tabs);
        viewPager = (ViewPager) mainView.findViewById(R.id.vp_view);
        viewPager.setAdapter(mAdapter);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.setTabMode(TabLayout.MODE_FIXED);
        mAdapter.notifyDataSetChanged();
    }


Java Executors 学习笔记


创建ThreadPoolExecutor

  • ThreadPoolExecutor executor=(ThreadPoolExecutor)Executors.newCachedThreadPool();
    • 为每个接收到的任务创建一个线程(如果池中没有空闲的线程)
    • 提交大量的任务,并且它们有很长的(执行)时间,会使系统过载和引发应用程序性能不佳的问题
  • ThreadPoolExecutor executor=(ThreadPoolExecutor)Executors.newFixedThreadPool(5);
    • 创建固定大小例如5的ThreadPoolExecutor
    • 提交超过最大线程数的任务,剩下的任务将会被阻塞,直到有空闲的线程来处理它们


MaterialDesignLibrary 开源库的坑


坑的起源

按github中介绍中的配置

repositories { jcenter() } dependencies { compile 'com.github.navasmdc:MaterialDesign:1.5@aar' }

编译后

“Attribute ”rippleColor“ has already been defined” 。检查了一下自己的color.xml。并没有定义这个属性,那么应该就是第三方库里使用了这个属性。


基于用户画像的推荐算法实现


  接上文,现代社交网站常常需要根据用户身份和偏好向他们推荐相似用户,比如微博,并且这些数据常常数据量常常十分巨大,简单的协同过滤算法已经不能满足需求了,那么该如何应用mahout更好地解决呢?当然要根据场景和数据具体分析,同时Mahout中的算法十分丰富(查看),并且依托于hadoop,可以充分发挥云端的力量。这里只是抛砖引玉,尝试用组合推荐的方法进行用户社会化推荐。   首先来看看假定的数据构成:


基于标签的推荐算法实现


  上面一篇文章说到了可以用mahout快速开发推荐算法,事实上推荐算法的应用场景已经十分广泛,最早提出的是协同过滤的推荐算法,也已经应用于各新闻,社交及电商网站。下面让我们模拟这一算法的开发过程。   首先对于每一个注册用户,网站可以根据他们对相关内容的关注程度给他们分别标上标签,例如,张三喜欢某款运动鞋等。随着网站用户数的增加,数据量也随之增长,这时候为了提高效率,网站就可以考虑使用推荐算法来向用户推荐物品。   为了更好地进行计算,首先要将数据进行清洗,例如将用户和物品按照数字编号进行表示,以一定的格式给出,例如:    23,345    12,22    45,87    ......

  然后就可以进行程序的编写了。