7 with3w

尚未进行身份认证

我要认证

码农

等级
TA的排名 3w+

Android不集成sdk直接调起原生地图App 路径规划、导航

在我们App开发过程中,经常会有一个优化用户体验的需求:查看某个地址时,给用户提供出路径规划,进行导航。如果本身App不属于LBS应用的话,为了一个小功能点就去集成各大地图SDK,有点杀鸡用牛刀的感觉,增加了apk的体积,得不偿失。那么大家第一个想到的是官方有提供不用集成sdk,就能调起地图App的方式呢?答案是有的:下面给出常用的2大地图SDK商 Api地址:高德地图 https://l...

2018-10-15 02:29:22

Android内存泄露之非静态内部类|匿名内部类 默认持有外部类的引用

什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,...

2018-09-19 12:11:44

Android内存泄露之InputMethodManager mNextServedView导致的内存泄露

E/MessageQueue: IdleHandler threw exception java.lang.NullPointerException: Null reference used for synchronization (monitor-enter) at com.syinix.android.b.ca.a(IMMLeaks.java:74)atcom.sy...

2018-09-11 11:52:03

npm ERR! cb() never called! 解决办法

执行npmi命令时,出现了npmERR!cb()nevercalled!错误解决方案:1、首先清除你的npm缓存:sudonpmcacheclean-f一般情况执行完后再试下应该就OK了2、如果1方法不奏效的话,只能采用升级覆盖安装:清除完缓存后,安装最新版本的Nodehelper:npminstall-gn告诉助手(n)安装最新的稳定...

2018-09-07 20:54:01

bash: react-native: command not found

RN搭建开发环境 Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。 出现bash: react-native: command not found问题,执行下面的命令就OK了 npm install -g yarn react-native-...

2018-09-07 20:34:03

不透明度百分比 16进制值对照表;rgb色值16进制转化原理

不透明度 16进制值100% FF 95% F2 90% E6 85% D9 80% CC 75% BF 70% B3 65% A6 60% 99 55% 8c 50% 80 45% 73 40% 66 ...

2018-09-01 21:56:48

Android布局优化之ConstraintLayout

ConstraintLayout是属于Android Studio 2.2的新特性,现在使用As构建默认的Activity,其对应的页面根布局已由RelativeLayout替换成ConstraintLayout,可见官方对其的推荐程度。<?xml version="1.0" encoding="utf-8"?><android.support.constraint.Con...

2018-08-30 01:28:04

Android布局优化之 ViewStub 、include、merge 使用及源码分析

我们先看一个Activity的页面布局结构: 从上可以看出平常咱们实际绘制的页面布局其实是处在第3层。一、includeinclude标签就是为了解决重复定义相同布局的问题。 例如页面中常用到的标题栏,它几乎是用在所有页面的顶部,在不使用include的情况下咱们需要在每个界面加标题栏的xml代码,显得很繁琐,这时候就会想到封装、复用,include标签就应运而生了,我们只需要...

2018-08-30 00:13:27

Regular、Normal、Medium、Light 对应的font-weight值

开发中设计师所出的设计图描述字重的地方往往是这样的: 如上2图描述字重的地方用的是Regular,知道这对应的font-weight值是多少吗?字体粗细:‘font-weight’属性名称: font-weight取值: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 8...

2018-08-28 22:13:13

WebView 打印web端的console日志(如console.log)

在Android Webview中如何打印web端的console日志呢?1.调试Web应用程序 Debugging Web Apps 如果您使用运行Android 4.4或更高版本的设备测试您的网络应用,则可以WebView使用Chrome开发者工具远程调试您的网页,同时继续支持旧版Android。有关更多信息,请参阅Android上的远程调试2.利用WebChromeClient o...

2018-08-27 17:45:57

RecyclerView 通用Adapter添加头部、尾部 参考ListView的源码实现(二)

前面一篇RecyclerView 通用Adapter添加头部、尾部 参考ListView的源码实现(一)文章中的实现的RecyclerBaseAdapter是有一些缺陷的,它只适用于头部、尾部ItemViewType类型为仅为一种。 后面稍微改进了一下,允许多ItemViewType,但是需要开发者保证头部View、尾部View、正常View的ItemViewType不重复,实际开发中类型也不会...

2018-08-25 19:17:47

在React-Native、React中 设计模式之模板方法模式的应用

大家在写Java、Android程序时,肯定都会用到设计模式之模板方法模式(一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现)。 搭Android框架时,都会去写一个基类BaseActivity:基类:public abstract class BaseActivity extends AppCompatActivity { @Override protected voi...

2018-08-24 22:45:57

InteractionManager.runAfterInteractions 手势左滑退出后 不再触发回调

前面一篇文章Navigator 过渡动画卡顿的解决方案,提到了 InteractionManager.runAfterInteractions这个解决方案。InteractionManagerInteractionmanager可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证JavaScript动画的流畅运行。应用这样可以安排一个任务在交互和动画完成之后执行:...

2018-08-24 19:39:36

ios Rn0.44 Xcode9 ScrollView下拉距离过短或下拉刷新后 不能自动回弹、复位置顶

早期做RN的时候是基于0.44版本的,后面做需求迭代版本时候因人手不够也没去主动升级,一直拖到近期才升级到0.55+,且还未完成兼容测试。但目前因为有个小需求需要捉急上线,于是就还在老分支上开发,然后打包上线(用的Xcode 8.3)。 接着坑来了,从 2018 年 7 月开始,所有新的 iOS 应用程序和更新到应用商店的更新都必须使用 iOS 11 SDK 构建。 新分支RN虽然升级了但还未...

2018-08-23 02:26:06

h5 ios中软键盘弹起后 fixed定位失效

position: fixed;在ios手机中会存在一个失效情况: 如果页面有输入框存在,点击输入框软键盘弹起后会发现原先fixed定位在顶部的View不见了,ran’h

2018-08-21 15:20:17

h5 移动端 监听软键盘弹起、收起

前面一篇博客 h5 安卓 键盘弹起界面适配 修改webview高度提到了在Adnroid中如何监听软键盘的弹起与收起,是利用的窗口的高度发生变化 window.onresize事件来做突破点的,但是ios中软键盘的弹起收起并不触发window.onresize事件。 总结: 1.在ios中软键盘弹起时,会引起$(‘body’).scrollTop值改变,但是我们可以通过输入框的获取焦点情况来...

2018-08-21 13:18:32

React-Native Navigator 过渡动画卡顿的解决方案

在Rn0.44版本之前,路由导航跳转几乎是使用的是Navigator组件,在0.44版本以后就不推荐使用了,官方推荐的是react-navigation,当然还是可以在废弃的库中找到: import { Navigator } from 'react-native-deprecated-custom-components'首先Navigator动画是由Js线程(单线程特点)控制。我们来脑补一...

2018-08-14 16:50:08

RecyclerView 通用Adapter添加头部、尾部 参考ListView的源码实现(一)

首先我们看下以前的ListView是如何实现addHeaderView、addFooterView 1.先看ListView.setAdapter(ListAdapter adapter) 方法 2.再看addHeaderView、addFooterView方法 以上2个方法中都用到了wrapHeaderListAdapterInternal方法,见下图 现在我们可以看出最终实...

2018-08-12 12:21:12

参数名按ASCII码大小排序 冒泡算法实现

上一篇博客签名算法 待签名参数按照字段名的ASCII码大小排序 Android、JS中实现中提到的排序方法实现都是利用系统的api,在这里想用一下底层算法来实现:1.先看系统api实现 String[] data = new String[]{"key", "ba","ba", "ac", "bb","bbc","ccce","ccc"

2018-08-12 00:30:32

签名算法 待签名参数按照字段名的ASCII码大小排序 Android、JS中实现

验签是作为一个api接口避免裸奔的必要手段之一,原理就是前后端约定一套签名规则,首先前端在请求api接口时会增加一个sign参数,其值来源是对所提交的参数按照约定的签名规则去生成;接着后端同样会针对其接收到的参数(除sign外)按照约定的签名规则也生成一个sign,然后对2者进行比较,如果不一致则认为此次请求是未非法无效的,不予处理。参考微信公众平台的签名算法:签名生成规则如下:参与签名的字...

2018-08-11 22:27:11

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!