【前端系列】学习 NPM

一、什么NPM

NPM是随同NodeJS一起安装的包管理工具,常见的有以下几种使用场景:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用;

  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用;

  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用;

二、安装NPM

所以,首先安装NodeJs,下载地址 https://nodejs.org/en/download/ 打开NodeJS官网时,会发现有两个版本:LTS(Long Term Support)和Current。官方也提示了,大多数用户建议使用LTS,如果想体验最新的特性可以使用Current版本。每个版本包含的NPM版[……]

继续阅读 →

Android热修复详解

Tinker
阿里百川HotFix
QZone
AndFix
Robust
Dexposed

类替换
yes
yes
yes
no
no
no

So替换
yes
yes
no
no
no
no

资源替换
yes
yes
yes
no
no
no

全平台支持
yes
yes
yes
yes
yes
no

即时生效
no
yes
no
yes
yes
yes

性能损耗
较小[……]

继续阅读 →

Weex在达人店的一年实践

本文来自尚妆移动端团队路飞
发表于尚妆github博客,欢迎订阅!

尚妆达人店接入weex也一年的时间了,在此期间,也陆陆续续出了一些文章,见尚妆产品技术刊读。这里就详细地做一个总结,希望可以给大家带来一些参考。

一、什么是Weex

引用一下Weex官网的定义,我们在实践的过程中也实际地体会到了这些。以下是提炼出的几个关键字:
image

还未接触过weex的同学,如果想先看一下效果,可以访问 Weex 提供的 在线Playground,进行编辑和浏览,App端下载playground进行扫码浏览效果。
image

可以看到,Weex可以通过自己设计的DSL,用vue像写 web 页面一样写[……]

继续阅读 →

一行代码完成Android 6.0的权限配置

Android 8.0都出来了,可能有不少应用一直都还没有适配Android6.0。适配过的同学对以下几句代码都不陌生,每个需要权限的activity都需要这么一段代码:

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == CODE_FOR_WRITE_PERMISSION){
if (permissions[0].equals(Manifest.permiss[......]

继续阅读 →

weex 三端实现Pager 组件(ViewPager)

随着weex在业务的一步步深入,在这次改版中,我们三端了实现pager组件。pager组件,就是常见的tab形式的界面:

Alt text

1、底部的导航栏,采用原生的组件实现,方便通过在线配置变更。
2、其中首页里的tab是通过pager来实现。
3、pager组件不包括顶部的header,只包括内容,其实就是Android的viewpager.

pager组件定义

sample:

<pager
@scroll="scroll"
@currentChange="currentChange"
:src="src"
[......]

继续阅读 →

weex里native事件通知js的方案实现

接入weex已有几个月,各方面都已慢慢完善。最近遇到一个点,先记录一下。后续会花时间整理一系列weex相关的文章。希望早点完成。

需求

现在有很多页面需要在返回的时候刷新,比如从购物车跳转到详情页加购,再到购物车,这时候应该刷新页面;如果从订单列表页点击付款跳转后进行支付后,返回的时候刷新数据。

viewappear 和 viewdisappear事件

首先想到的是weex已经提供的绑定到根元素的viewappear 和 viewdisappear事件。使用方法是绑定到根元素上,自定义过component的同学在这里应该不难猜到它是基于fireEvent实现的。[……]

继续阅读 →

Android 无须权限的Toast解决方案

问题:

在5.0以上系统中被用户关闭消息通知后,系统的Toast也一起无法显示了。

原因:Toast通过NotificationManagerService 维护一个toast队列,然后通知调用 WindowManager 添加view,那么当用户关闭通知权限后,NotificationManagerService受到影响,导致Toast无法显示。

可以考虑的解决方案:

1、仿照系统的Toast然后用Handler+Queue自己的消息队列来维护,让其不受NotificationManagerService影响,显示还是使用WindowManager来addv[……]

继续阅读 →

大幅减少Android OOM的几个措施

公司产品采取以下措施后,近两个星期,只出现一次的OOM

一、神器LeakCanary,在开发阶段检测内存泄露

LeakCanary是一个检测内存泄露的开源类库。你可以在 debug 包中轻松检测内存泄露,在开发阶段进行及时修复。

简单使用方法如下:
在 build.gradle 中加入引用,不同的编译使用不同的引用:

 dependencies {
debugCompile 'com.sq[......]

继续阅读 →