开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

Xposed从入门到弃坑:0x02、IXposedHook相关接口解析

在上一篇文章中我们通过一个简单的例子开发了一款Xposed框架,感受到了Xposed的强大功能,在demo中我们新建了一个XposedInit的类实现了IXposedHookLoadPackage 接口,在handleLoadPackage中进行hook,最终达到了我们的目的,那IXposedHookLoadPackage是干什么的呢?还有handleLoadPackage什么时候会调用呢?还有IXposedHookInitPackageResources和IXposedHookZygoteInit的左右是什么?这期会做一个讲解。对上一篇文章有遗忘的可以回过头在看一遍:[Xposed从入门到弃坑:一、Xposed初探][1] ## IXposedHookLoadPackage 从字面上翻译就是在加载包时开始hook。接口需要实现*handleLoadPackage*方法,该方法会在执行Application.onCreate()方法前调用,并且携带一个*XC_LoadPackage.LoadPackageParam lpparam*返回过来,lpparam包含了hook到的应用的一些信息,具体通过表格来说明 **(表格的description均为hook到的应用相关信息,不是Xposed项目的信息)** | fields | type | description | | --- | --- | --- | | packageName | String | 应用包名 | | processName | String | 应用加载后的进程名 | | classLoader | ClassLoader | 应用的classloader | | appInfo | Applica...
WrBug 发布于 13小时前 阅读 123 评论 2

武汉源创会现场漂亮小姐姐那么多,千里堵车也要来相会

有美食有美女的武汉站,就算千里堵车也要来相会,随着武汉站落幕,4月源创会行程圆满结束,武汉站所有分享PPT下载链接可在文末查看。
开源中国源创会

iOS UIBezierPath贝赛尔曲线详解

>UIBezierPath是在画图,定制动画轨迹中都有应用。 >UIBezierPath主要用来绘制矢量图形,它是基于Core Graphics对CGPathRef数据类型和path绘图属性的一个封装,所以是需要图形上下文的(CGContextRef),所以一般UIBezierPath在drawRect中使用。 >本文主要介绍了iOS 贝塞尔曲线(UIBezierPath)属性、方法的相关详解资料,供大家参考,如有错漏,欢迎留言指正。 一、引入头文件: #import #import #import >1、[Objective-C之Foundation框架](http://www.cnblogs.com/kenshincui/p/3885689.html) >2、[Core Graphics-Apple的矢量绘图框架](http://www.tuicool.com/articles/jaM7zmN) >3、[UIKitDefines-UIKit中的一些宏定义](http://www.jianshu.com/p/a0e0075a75fe) 二、如果需要每个属性或每个方法都去指定nonnull和nullable,是一件非常繁琐的事。苹果为了减轻我们的工作量,专门提供了两个宏: NS_ASSUME_NONNULL_BEGIN ... NS_ASSUME_NONNULL_END >宏定义:Nonnull区域设置(Audited Regions) >在这两个宏之间的代码,所有简单指针对象都被假定为nonnull,因此我们只需要去指定那些nullable的指针。 三、按位掩码(bitmask) **注意:并不是枚举** typedef NS_OPTIONS...
chenjinfei 发布于 1天前 阅读 40

Xposed从入门到弃坑:一、Xposed初探

原文链接:[http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/](http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/) 最近心血来潮,开始折腾xposed框架,xposed框架可以说得上是款Android系统God级别的开源hook框架,拥有非常高的权限,不过目前还暂不支持Android 7.0 以上的系统。这也是我一直没有升级的原因 ## 什么是xposed Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed理论上能够hook到系统任意一个Java进程,由于是从底层hook,所以需要root权限,并且每次更新都要重新启动 Xposed官方git上面有几个开源项目,包括**XposedInstaller**、**Xposed**、**XposedBridge**、**XposedTools**,这里就不具体介绍了,感兴趣的可以查找相关资料,附上官方git地址:[https://github.com/rovo89][1] ## Xposed模拟器环境搭建 由于Xposed项目每次安装都要...
WrBug 发布于 2天前 阅读 435 评论 3

Android触摸事件的酸甜苦辣以及详细介绍

我的稀土掘金博客同步发布更新:Android触摸事件的酸甜苦辣以及详细介绍 我的简书博客同步发布更新:Android触摸事件的酸甜苦辣以及详细介绍 一、前言     一次完整的事件传递主要包括三个阶段,分别是事件的分发、拦截和消费。 二、事件传递的三个阶段     分发(Dispatch):事件的分发对应着dispatchTouchEvent方法,在Android系统中,所有触摸事件都是通过这个方法来分发的,代码: public boolean dispatchTouchEvent(MotionEvent ev)     在这个方法中,根据当前视图的具体实现逻辑,来决定是直接消费这个事件还是将事件继续分发给子视图处理,方法返回值为true表示事件被当前视图消费掉,不再继续分发事件;方法返回值为super.dispatchTouchEvent表示继续分发该事件。如果当前视图是ViewGroup及其子类,则会调用onInterceptTouchEvent方法判定是否拦截该事件。 拦截(Intercept):事件的拦截对应着onInterceptTouchEvent方法,这个方法只在ViewGroup及其子类中才存在,在View和Activity中是不存在的,代码: public boolean onInterceptTouchEvent(MotionEvent ev)     这个方法也是通过返回的布尔值来决定是都拦截对应的事件,根据具体的实现逻辑,返回...
MrXI 发布于 3天前 阅读 262

Android SimpleAdapter

Android Adapter的简单封装,简化Adapter和ViewHolder的使用
sky-update 发布于 3天前 阅读 134

仿QQ空间和微信朋友圈,高解耦高复用高灵活

先看看效果:   用极少的代码实现了 动态详情 及 二级评论 的 数据获取与处理 和 UI显示与交互,并且高解耦、高复用、高灵活。   动态列表界面MomentListFragment支持 下拉刷新与上拉加载 和 模糊搜索,反复快速滑动仍然非常流畅。 缓存机制使得数据可在启动界面后瞬间加载完成。   动态详情界面MomentActivity支持 (取消)点赞、(删除)评论、点击姓名跳到个人详情 等。 只有1张图片时图片放大显示,超过1张则按九宫格显示。         用到的CommentContainerView和MomentView都是独立的组件,既可单独使用,也可用于ListView或添加至其它ViewGroup等。   CommentContainerView复用   CommentContainerView.java  setOnCommentClickListener : 设置点击评论监听 createView : 创建View bindView : 绑定数据并显示View setMaxShowCount : 设置最多显示数量,超过则折叠 setComment : 设置评论 addCommentView : 添加评论View   1 package apijson.demo.client.view; 2 3 import android.annotation.SuppressLint; 4 import android....
TommyLemon 发布于 4天前 阅读 1163 评论 6

iOS崩溃日志之手动解析与自动解析

![输入图片说明](https://static.oschina.net/uploads/img/201704/23214326_2dn8.png "在这里输入图片标题") ### 前言 >  在日常开发中难免遇到程序崩溃的时候,若在Dev环境下通过编译器便能很容易定位到崩溃代码处,但是若版本发布在正式环境里(包括Adhoc和distrubute),我们便无法直接定位到崩溃代码处了。此刻app里的统计平台反馈给我们的是一段没有可读性的日志。那么如何高效、快速、准确地解析日志以便我们快速定位到问题代码? [talkingData平台上的崩溃日志] ![输入图片说明](https://static.oschina.net/uploads/img/201704/23214456_8eDC.png "talkingData平台上的崩溃日志") #### 一、所需文件 1. 崩溃日志文件 我们公司使用的是talkingData统计分析平台,故在网站平台可以看到详细的日志记录,平台上还能看到具体是哪一个版本的APP崩溃。从网站平台下载下来的日志文件为csv格式。 ![输入图片说明](https://static.oschina.net/uploads/img/201704/23221516_9fGr.png "在这里输入图片标题") 2. 符号表文件  2.1 依次点击 Xcode-->Window-->Organizer-->Archives,选中你的项目,右击,点击 “Show in Finder” 便可找到对应的xcarchive文件。 ![](http...
Janyau 发布于 4天前 阅读 93

Android全套动画使用技巧

一、Android  View 动画框架     Animation框架定义了透明度、旋转、缩放和位移几种常见的动画,控制的整个View,实现原理是每次绘制视图时View所在ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。如果没有完成就继续调用invalidate()函数,启动下次绘制来驱动动画,从而完成整个动画的绘制。     视图动画使用简单,效果丰富,它提供了AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation四种动画方式,并提供动画集合AnimationSet,混合使用多种动画。在Android3.0之前,视图动画一家独大,但随着Android3.0之后属性动画框架的推出,它的风光就大不如从前。相比属性动画,视图动画的一个非常大的缺陷就是不具备交互性,当某个元素发生视图动画后,其响应事件的位置还依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互的发生。但是它的优点也非常明显,即效率比较高且使用方便。     视图动画使用非常简单,不仅可以通过XML文件来描述一个动画过程,同样也可以使用代码来控制整个动画过程。 (1)、透明度动画    为视图...
MrXI 发布于 5天前 阅读 1299 点赞 1

Android 的滑动分析以及各种实现

一、滑动效果的产生     滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。 (1)、Android的坐标系         Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:          系统提供了getLocationOnScreen(int location[])这样的方法来获取Android坐标系中点的位置,即该视图左上角在Android坐标系中的坐标。在触控事件中使用getRawX()、getRawY()方法所获得的坐标同样是Android坐标系中的坐标。  (2)、视图坐标系     Android中除了上面所说的这种坐标系之外,还有一个视图坐标系,它描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相互相成的。与Android坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向,只不过在视图坐标系中,原点不再是Android坐标系中的屏幕最左上角,而是以父视图左上角为坐标原点,如下图:     在触控...
MrXI 发布于 6天前 阅读 1080 评论 6 点赞 3

从未如此惊艳!你好,SuperTextView

欢迎使用SuperTextView,这篇文档将会向你展示如何使用这个控件来提高你构建项目的效率。
CoorChice 发布于 1周前 阅读 966 评论 2 点赞 1

iOS推送原理讲解之推送证书的配置(一)

####登录苹果开发者中心: ![输入图片说明](https://static.oschina.net/uploads/img/201704/16134834_LAaQ.png "在这里输入图片标题") ####如上图所示进行登录操作,会看到如下界面 ![输入图片说明](https://static.oschina.net/uploads/img/201704/16135019_ZA11.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201704/16135354_hG74.png "在这里输入图片标题") #####您会看到上面的界面,左侧一栏是你需要配置的东西,你需要按照这个顺序进行配置 ![输入图片说明](https://static.oschina.net/uploads/img/201704/16135354_hG74.png "在这里输入图片标题") #####关于证书的详细配置在这里不多赘述,网上有很多资源可以自行查看 #####文件的配置 ![输入图片说明](https://static.oschina.net/uploads/img/201704/16142944_t7SP.png "在这里输入图片标题") ![注意勾选远程推送](https://static.oschina.net/uploads/img/201704/16143003_uCIS.png "在这里输入图片标题") ###注意注意注意!!!!重要的事情说三遍----远程推送需要真机调试证书,不会配置证书的可以在网上找资料,注意配置appID的文件的时候要把Push NotiFication选上...
___大黄蜂___ 发布于 2周前 阅读 96 评论 1 点赞 1

手把手教你实现Android RecyclerView上拉加载功能

一直在用到RecyclerView时都会微微一颤,因为一直都没去了解怎么实现上拉加载,受够了每次去Github找开源引入,因为感觉就为了一个上拉加载功能而去引入一大堆你不知道有多少BUG的代码,不仅增加了项目的冗余程度,而且出现BUG的时候,你却发现很难去改,正因为这样,我就下定决心去了解如何来实现RecyclerView的上拉加载功能,相信大家和我有过同样的情况,但是我相信,只要你给自己几分钟看完这篇文章,你就会发现实现一个上拉加载是非常的简单。
Ryane 发布于 2周前 阅读 405 点赞 2

RxJava2 和 Retrofit2 依赖时出现冲突问题

RxJava2 和 Retrofit2 依赖时出现冲突问题
zxy_秀宇 发布于 2周前 阅读 168

小程序思维导图,让小程序不再难懂(二)

>写在前面 第二波小程序思维导图终于出炉了,各位久等。 思维导图是一个很神奇的东西,它直观,界面美而有富有逻辑性。技术这种东西知识点多而杂,想要全面掌握不容易。需要用做到熟练更加不容易了。界面化的产物适合更加让人加深印象。当思维导图和技术结合到一起,会产生什么样的效果呢?自己去体会吧。 >小程序 小程序入门简单,会点前端的人基本都能很快上手。官方文档也写得比较清晰了,我也不做太多的重复动作。一些常用的功能或api总结了一下,希望你们能更深刻直观地认识一下小程序。 >思维导图 ![14、事件处理.png](http://upload-images.jianshu.io/upload_images/4120002-cd09146469590a7a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![15、文件引用.png](http://upload-images.jianshu.io/upload_images/4120002-004688a3b2b7d939.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![16、模板.png](http://upload-images.jianshu.io/upload_images/4120002-18734168471a8372.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![17、常用api.png](http://upload-images.jianshu.io/upload_images/4120002-9ea4e62b66f9f8c3.p...
java思维导图 发布于 2周前 阅读 2195 评论 6 点赞 5

2017 年移动应用开发十大趋势

在快节奏的 APP 开发领域,随时了解增强现实、即时应用(Instant Apps)和直接与云端交互等趋势,将有助于你的 APP 脱颖而出。
编辑部的故事 发布于 2周前 阅读 4737 评论 6 点赞 2

Python中Requests库的高级用法

前面讲了Python的urllib库的使用和方法,Python网络数据采集Urllib库的基本使用 ,Python的urllib高级用法 。 今天我们来学习下Python中Requests库的用法。(官方手册)(四种传参方式)(创业) Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,y)或者anaconda的话,就可以直接使用pip安装Python的库。 $ pip install requests 安装完成之后,下面来看一下基本的方法: #get请求方法 >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) #打印get请求的状态码 >>> r.status_code 200 #查看请求的数据类型,可以看到是json格式,utf-8编码 >>> r.headers['content-type'] 'application/json; charset=utf8' >>> r.encoding 'utf-8' #打印请求到的内容 >>> r.text u'{"type":"User"...' #输出json格式数据 >>> r.json() {u'private_gists': 419, u'total_private_repos': 77, ...} 下面看一个小栗子: #小例子 import requests r = requests.get('http://www.baidu.com') print type(r) print r.status_code print r.encoding print r...
阿锋zxf 发布于 2周前 阅读 349 评论 1

iOS AFNetworking框架HTTPS请求配置

iOS AFNetworking框架HTTPS请求配置
IamOkay 发布于 2周前 阅读 169

HandyJSON和SwiftyJSON的应用

# 1. HandyJSON的应用 想要通过`HandyJSON `实现序列化和反序列化, 必须实现`HandyJSON `协议, 不需要继承NSObject对象, 实现协议必须实现public init(){} 方法. 序列化和反序列化支持struct和enumerate类型. HandyJSON可支持非基础类型 ``` var bool: Bool = true var intOptional: Int? var doubleImplicitlyUnwrapped: Double! var anyObjectOptional: Any? var arrayInt: Array = [] var arrayStringOptional: Array? var setInt: Set? var dictAnyObject: Dictionary = [:] var nsNumber = 2 var nsString: NSString? ``` ## 1.1 反序列化 ``` class BasicTypes: HandyJSON { var int: Int = 2 var doubleOptional: Double? var stringImplicitlyUnwrapped: String! required init() {} } let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}" if let object = BasicTypes.deserialize(from: jsonString) { print(object.int) print(object.doubleOptional!) print(object.stringImplicitlyUnwrapped) } // HandyJSON提供的几种序列化的方法 let person = SOHomeModel.deserialize(from: <#T##NSDictionary?#>) let perso...
hell03W 发布于 2周前 阅读 130

AAChartKit 一款极其精美的iOS开源图表库

1. 适配 `iOS 7`, 支持`ARC`,支持 `OC`语言,配置简单. 2. 功能强大,支持`柱状图` `条形图` `折线图` `填充图` `雷达图` `扇形图` `气泡图`等多种图形 3. `动画`效果细腻精致,流畅优美. 4. 支持类 *Masonry* `链式编程语法` 5. `AAChartView + AAChartModel = Chart`,在 AAChartKit 封装库当中,遵循这样一个极简主义公式:`图表视图控件+图表模型=你想要的图表`.
黄昏别馆 发布于 3周前 阅读 298 评论 1

小程序思维导图,让小程序不再难懂(一)

>写在前面 首先,很感谢大家喜欢我的思维导图。 有网友评论说:思维导图实际就是一种比纯文字更贴近人理解的模型——知识关系。的确,思维导图又称为脑图,是一种适合头脑风暴模式,同时又适合梳理点与点之间的一种表现形式。当然,java作为一门语言,设及的的技术很多,知识面也是很广。小小一张思维导图也无法容纳这么多信息,因此想要深入了解思维导图中的每一个节点就需要另外上网查找资料或查看相关书籍。当然,我偶尔也会在节点中给出相关的链接。通过链接至少可以加深对每一个知识点的印象。 >小程序 前段时间吵得很火的小程序,虽然现在有点平静下来的趋势,但也不可能完全磨灭。随着腾讯对个人开发者开发,相信有很多人都想拥有自己的小程序。本次就分享我开发过程中整理的小程序思维导图(还没完成整理完)。希望对初学者,或者想回顾小程序的童鞋有所帮助。 ![0、总览图.png](http://upload-images.jianshu.io/upload_images/4120002-2271a6d120e87e14.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![1、微信小程序.png](http://upload-images.jianshu.io/upload_images/4120002-80d5a52cdc6ae7da.png?imageMogr2/auto-orient/strip%7CimageView2/...
java思维导图 发布于 3周前 阅读 2541 评论 9 点赞 13

fragment点击无响应

//当点击对应的categoryTitle时 ft = fm.beginTransaction(); switch (position) { case 0: ft.replace(R.id.content, new FeelingForecastBodyFragment()); break; case 1: ft.replace(R.id.content, new SocialBodyFragment()); break; case 2: ft.replace(R.id.content, new MapBodyFragment()); break; case 3: ft.replace(R.id.content, new AboutBodyFragment()); break; case 4: ft.replace(R.id.content, new OtherBodyFragment()); break; } ft.commit();//注意!!!!!!!!!!!!!!!!!...
mutouzhang 发布于 3年前 阅读 425

计算1千米内最大最小的经纬度&&计算地球上两点之间距离python

计算1千米内最大最小的经纬度&&计算地球上两点之间距离
Nob 发布于 3年前 阅读 651

【高德地图API】从零开始学高德JS API(五)路线规划

路线规划与导航有什么区别?步行导航与驾车导航有什么区别?本文详细讲解了路线规划的全部接口,与应用场景,并用最简单的代码,以插件形式给出示例。
高德开发平台 发布于 3年前 阅读 537

导入开源库到基于Android Studio构建的项目中

前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发。然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧。主要介绍一下常见的一些导包的场景。
码农明明 发布于 2年前 阅读 1432 评论 2 点赞 3

武汉源创会现场漂亮小姐姐那么多,千里堵车也要来相会

有美食有美女的武汉站,就算千里堵车也要来相会,随着武汉站落幕,4月源创会行程圆满结束,武汉站所有分享PPT下载链接可在文末查看。
开源中国源创会

获取UIImage中的图像数据

获取UIImage中的图像数据,最好是重绘CGImage
Charly张 发布于 1年前 阅读 79

RMAN备份

1、切换服务器归档模式,如果已经是归档模式可跳过此步: %sqlplus /nolog     (启动sqlplus) SQL> conn / as sysdba     (以DBA身份连接数据库) SQL> shutdown immediate;     (立即关闭数据库) SQL> startup mount     (启动实例并加载数据库,但不打开) SQL> alter database archivelog;     (更改数据库为归档模式) SQL> alter database open;     (打开数据库) SQL> alter system archive log start;     (启用自动归档) SQL> exit     (退出) 2、连接: %rman target=rman/rman@mydb     (启动恢复管理器) 3、基本设置: RMAN> configure default device type to disk;    (设置默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2;     (设置备份的并行级别,通道数) RMAN> configure channel 1 device type disk format '/backup1/backup_%U';     (设置备份的文件格式,只适用于磁盘设备) RMAN> configure channel 2 device type disk format '/backup2/backup_%U';     (设置备份的文件格式,只适用于磁盘设备) RMAN> ...
apsaras 发布于 10个月前 阅读 4

据说年薪30万的Android程序员必须知道的帖子

Android开源项目第一篇——个性化控件(View)篇  包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、其他 Android开源项目第二篇——工具库篇  包括依赖注入、图片缓存、网络相关、数据库ORM工具包、Android公共库、高版本向低版本兼容库、多媒体、事件总线、传感器、安全、其他 Android开源项目第三篇——优秀项目篇  比较有意思的完整的Android项目 Android开源项目第四篇——开发及测试工具篇  包括开发效率工具、开发自测相关、测试工具、开发及编译环境、其他 Android开源项目第五篇——优秀个人和团体篇  乐于分享并且有一些很不错的开源项目的个人和组织,包括JakeWharton、Chris Banes、Koushik Dutta等大牛 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animation等等。 一、ListView android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal )Sc...
恒源祥 发布于 6个月前 阅读 96 评论 3

手把手教你开发生鲜电商APP,一天包会

根据过去几年生鲜行业的调查显示,随着移动互联网的普及,电商平台的领域也逐步涵盖生鲜领域,越来阅读的生鲜企业加入电商行业,生鲜APP已经成为一大热门领域。 因为生鲜行业对时间因素非常敏感,消费者在APP上提前下单,商家可以根据下单数进货,并且不用再在普通的商超展示,直接送货上门,可以保证食材的新鲜度。对商家来说,更可减少商超的入场费等额外支出。对于自营生鲜的企业来说,打开了一条自己能够把握的产品渠道。 据艾瑞咨询最新数据显示,2016年国内生鲜电商的整体交易额约900亿元,较2015年增长了80%,预计2017年整体市场规模可以达1500亿元。再加上,当前生鲜电商渗透率低,仅占农产品零售总额不足5%。生鲜电商领域,还有众多市场空间等待挖掘。 生鲜电商的发展方向: 1、以日常蔬菜为切入点是大多数生鲜APP的选择,首先蔬菜每天都需要,硬性需求大,其次是蔬菜的保鲜期想对长一点。管理难度较小。 2、生鲜app平台以社区O2O模式为立足点和切入点,生鲜电商+社区O2O模式,是一个比较好的选择。用户当日在APP上下单,次日就可到社区便利店线下自提或选择送货上门。非常方便,而且成本低。 生鲜电商APP的制作: 随着移动互联网开发底层技术的发展,不懂编程的小...
应用公园111 发布于 2周前 阅读 3

快鸟VPN和快鸟影梭SS 今天免费账号更新

  您可能需要有虚拟专用网络 (VPN) 连接才能访问您的公司资源,如内部网或公司电子邮件等。 切勿用于非法用途,违法必究。   免费VPN账号 可以在Win 10应用商店搜索【快鸟VPN】获取,或者收藏本页面 获取后的帐号需要填入系统设置或者软件才能使用,不是获取了就能连上。   快鸟VPN QQ群:171084234 使用教程点击本页面下方教程,2017.4.25免费账号更新: PPTP连不上的话,请使用手机流量,或者使用影梭。 打不开国外网页,浏览器建议使用Chrome浏览器:https://www.baidu.com/s?wd=chrome浏览器 今天免费账号更新 【VPN:类型PPTP,服务器地址45.32.103.51用户名freevpn密码qqqqqqqq】 【影梭Shadowsocks:服务器地址185.72.156.28端口8989密码qqqqqqqq加密方式:AES-256-CFB】 【L2TP免费VPN失效,如需要使用,请联系客服QQ:3197571508  购买付费帐号】   另外:付费VIP更快更稳定,购买VIP付费独立帐号请加快鸟vpn客服qq:3197571508。遇到VPN连不上的情况请联系客服解决。 点击下方超链接可以查看教程: PPTP: 快鸟VPN Win10 VPN设置教程  快鸟VPN Win7 PPTP VPN设置教程 快鸟VPN WP连接PPTP使用教程 快鸟VPN 安卓Andriod PPTP设置教程 快鸟VPN iOS PPTP设置教...
快鸟VPN 发布于 5个月前 阅读 120235 点赞 3 打赏 1

仿QQ空间和微信朋友圈,高解耦高复用高灵活

先看看效果:   用极少的代码实现了 动态详情 及 二级评论 的 数据获取与处理 和 UI显示与交互,并且高解耦、高复用、高灵活。   动态列表界面MomentListFragment支持 下拉刷新与上拉加载 和 模糊搜索,反复快速滑动仍然非常流畅。 缓存机制使得数据可在启动界面后瞬间加载完成。   动态详情界面MomentActivity支持 (取消)点赞、(删除)评论、点击姓名跳到个人详情 等。 只有1张图片时图片放大显示,超过1张则按九宫格显示。         用到的CommentContainerView和MomentView都是独立的组件,既可单独使用,也可用于ListView或添加至其它ViewGroup等。   CommentContainerView复用   CommentContainerView.java  setOnCommentClickListener : 设置点击评论监听 createView : 创建View bindView : 绑定数据并显示View setMaxShowCount : 设置最多显示数量,超过则折叠 setComment : 设置评论 addCommentView : 添加评论View   1 package apijson.demo.client.view; 2 3 import android.annotation.SuppressLint; 4 import android....
TommyLemon 发布于 4天前 阅读 1163 评论 6

微信js sdk invalid signature签名错误 问题解决。

微信 js sdk invalid signature,permission denied
Oscarfff 发布于 2年前 阅读 122385 评论 22 点赞 9 打赏 1

ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏

ios上 更改状态栏(UIStatusBar)的颜色
shede333 发布于 3年前 阅读 187925 评论 15 点赞 25

拿到微信小程序APPID了如何使用https版API中心来开发

好多小伙伴已经拿到微信小程序APPID啦,开发起来发现原来好多接口都不能用啦,为了满足大家后台数据储存读取的需求,API中心已经升级为https访问啦,具体怎么用,请往下看: 1、首先使用自己的APPID在开发者工具创建一个项目 2、在项目里面写上访问API中心的接口,具体API使用接口说明请移步这里:http://www.wxappclub.com/apicenter/ 3、启动模拟器查看,发现会报错,具体提示为域名不在以下合法列表中,这是因为我们还没有在小程序后台设置我们的合法域名! 4、我们登录微信小程序后台去找到设置合法域名的地方 5、到开发设置里面编辑上域名,这里填写https://api.wxappclub.com/ 6、用管理员扫码确认 7、可以看到设置完成的效果 8、回到我们的开发者工具点击预览 9、手机微信扫描,可以看到我们的页面效果啦 10、手机上可以直接点击查看console控制台,能看到我们接口通信已经正常,大家开始实现自己的业务吧  
微信小程序社区俱乐部 发布于 6个月前 阅读 4336 评论 4 点赞 4

WebSocket使用教程 - 带完整实例

WebSocket使用教程 - 带完整实例
james_laughing 发布于 2年前 阅读 75846 评论 4 点赞 6

Android 一个简单的登录界面(一)

Android 一个简单的登录界面
iSnowFlake 发布于 2年前 阅读 37815 评论 14 点赞 8

从零开始学做微信小程序,看这些就够了!

随着正式开放公测,微信小程序再次万众瞩目,越来越多的企业和个人涌入到小程序开发的大军中。小程序究竟是什么?适合做小程序的产品有哪些?做小程序需要提前准备什么?如何零基础学做小程序?此文,将列出OSC上优质的资源供大学了解和学习。 一、新手入门 有关小程序的入门,首选自然是官方文档。 它解释了基本概念,有简单的设计指南和开发教程,能让你很好地对小程序有初步理解。  微信小程序产品定位及功能介绍 微信小程序设计指南 微信小程序简易教程 微信小程序运营规范 看完这些你会发现,小程序主打的是比APP更轻量的形态,简单的开发,却接近app的体验,无需下载,扫码打开。那么,一些刚需且高频的金融类、电商类、教育类等其实是不适合接入小程序的。这些对功能的要求都很重,小程序难以承载。而且小程序不能像微信公众号一样被关注、群推送消息以及转发朋友圈,这也就意味着,它没有办法获取用户更多的信息,也不便于深度营销。 小程序适用哪些产品? 功能很轻,用完即走的,如刚需且低频的服务类、旅游类等 基于社交场景的轻应用,或者说基于轻社交的应用 非即时、可异步的应用 初创型企业的MVP产品 开发和设计能力有限的产品 以及更多…… 这些不错的资源...
王练 发布于 6个月前 阅读 15735 评论 22 点赞 26

微信小程序开放公测,快速申请一个小程序账号

微信小程序社区也上线啦
小木学堂 发布于 6个月前 阅读 10710 评论 11 点赞 6

iOS中通知中心(NSNotificationCenter)的使用总结

NSNotification是IOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值、回调等地方应用很广。
珲少 发布于 2年前 阅读 82303 点赞 14

Xposed从入门到弃坑:一、Xposed初探

原文链接:[http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/](http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/) 最近心血来潮,开始折腾xposed框架,xposed框架可以说得上是款Android系统God级别的开源hook框架,拥有非常高的权限,不过目前还暂不支持Android 7.0 以上的系统。这也是我一直没有升级的原因 ## 什么是xposed Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed理论上能够hook到系统任意一个Java进程,由于是从底层hook,所以需要root权限,并且每次更新都要重新启动 Xposed官方git上面有几个开源项目,包括**XposedInstaller**、**Xposed**、**XposedBridge**、**XposedTools**,这里就不具体介绍了,感兴趣的可以查找相关资料,附上官方git地址:[https://github.com/rovo89][1] ## Xposed模拟器环境搭建 由于Xposed项目每次安装都要...
WrBug 发布于 2天前 阅读 435 评论 3

移除HTML5 input在type="number"时的上下小箭头

HTML5, INPUT, TYPE, NUMBER
qii 发布于 2年前 阅读 44680 点赞 3

Android全套动画使用技巧

一、Android  View 动画框架     Animation框架定义了透明度、旋转、缩放和位移几种常见的动画,控制的整个View,实现原理是每次绘制视图时View所在ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。如果没有完成就继续调用invalidate()函数,启动下次绘制来驱动动画,从而完成整个动画的绘制。     视图动画使用简单,效果丰富,它提供了AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation四种动画方式,并提供动画集合AnimationSet,混合使用多种动画。在Android3.0之前,视图动画一家独大,但随着Android3.0之后属性动画框架的推出,它的风光就大不如从前。相比属性动画,视图动画的一个非常大的缺陷就是不具备交互性,当某个元素发生视图动画后,其响应事件的位置还依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互的发生。但是它的优点也非常明显,即效率比较高且使用方便。     视图动画使用非常简单,不仅可以通过XML文件来描述一个动画过程,同样也可以使用代码来控制整个动画过程。 (1)、透明度动画    为视图...
MrXI 发布于 5天前 阅读 1299 点赞 1

仿QQ空间和微信朋友圈,高解耦高复用高灵活

先看看效果:   用极少的代码实现了 动态详情 及 二级评论 的 数据获取与处理 和 UI显示与交互,并且高解耦、高复用、高灵活。   动态列表界面MomentListFragment支持 下拉刷新与上拉加载 和 模糊搜索,反复快速滑动仍然非常流畅。 缓存机制使得数据可在启动界面后瞬间加载完成。   动态详情界面MomentActivity支持 (取消)点赞、(删除)评论、点击姓名跳到个人详情 等。 只有1张图片时图片放大显示,超过1张则按九宫格显示。         用到的CommentContainerView和MomentView都是独立的组件,既可单独使用,也可用于ListView或添加至其它ViewGroup等。   CommentContainerView复用   CommentContainerView.java  setOnCommentClickListener : 设置点击评论监听 createView : 创建View bindView : 绑定数据并显示View setMaxShowCount : 设置最多显示数量,超过则折叠 setComment : 设置评论 addCommentView : 添加评论View   1 package apijson.demo.client.view; 2 3 import android.annotation.SuppressLint; 4 import android....
TommyLemon 发布于 4天前 阅读 1163 评论 6

Android 的滑动分析以及各种实现

一、滑动效果的产生     滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。 (1)、Android的坐标系         Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:          系统提供了getLocationOnScreen(int location[])这样的方法来获取Android坐标系中点的位置,即该视图左上角在Android坐标系中的坐标。在触控事件中使用getRawX()、getRawY()方法所获得的坐标同样是Android坐标系中的坐标。  (2)、视图坐标系     Android中除了上面所说的这种坐标系之外,还有一个视图坐标系,它描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相互相成的。与Android坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向,只不过在视图坐标系中,原点不再是Android坐标系中的屏幕最左上角,而是以父视图左上角为坐标原点,如下图:     在触控...
MrXI 发布于 6天前 阅读 1080 评论 6 点赞 3

Xposed从入门到弃坑:一、Xposed初探

原文链接:[http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/](http://www.mandroid.cn/2017/04/25/Xposed%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%BC%83%E5%9D%91%EF%BC%9A%E4%B8%80%E3%80%81Xposed%E5%88%9D%E6%8E%A2/) 最近心血来潮,开始折腾xposed框架,xposed框架可以说得上是款Android系统God级别的开源hook框架,拥有非常高的权限,不过目前还暂不支持Android 7.0 以上的系统。这也是我一直没有升级的原因 ## 什么是xposed Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed理论上能够hook到系统任意一个Java进程,由于是从底层hook,所以需要root权限,并且每次更新都要重新启动 Xposed官方git上面有几个开源项目,包括**XposedInstaller**、**Xposed**、**XposedBridge**、**XposedTools**,这里就不具体介绍了,感兴趣的可以查找相关资料,附上官方git地址:[https://github.com/rovo89][1] ## Xposed模拟器环境搭建 由于Xposed项目每次安装都要...
WrBug 发布于 2天前 阅读 435 评论 3

Android触摸事件的酸甜苦辣以及详细介绍

我的稀土掘金博客同步发布更新:Android触摸事件的酸甜苦辣以及详细介绍 我的简书博客同步发布更新:Android触摸事件的酸甜苦辣以及详细介绍 一、前言     一次完整的事件传递主要包括三个阶段,分别是事件的分发、拦截和消费。 二、事件传递的三个阶段     分发(Dispatch):事件的分发对应着dispatchTouchEvent方法,在Android系统中,所有触摸事件都是通过这个方法来分发的,代码: public boolean dispatchTouchEvent(MotionEvent ev)     在这个方法中,根据当前视图的具体实现逻辑,来决定是直接消费这个事件还是将事件继续分发给子视图处理,方法返回值为true表示事件被当前视图消费掉,不再继续分发事件;方法返回值为super.dispatchTouchEvent表示继续分发该事件。如果当前视图是ViewGroup及其子类,则会调用onInterceptTouchEvent方法判定是否拦截该事件。 拦截(Intercept):事件的拦截对应着onInterceptTouchEvent方法,这个方法只在ViewGroup及其子类中才存在,在View和Activity中是不存在的,代码: public boolean onInterceptTouchEvent(MotionEvent ev)     这个方法也是通过返回的布尔值来决定是都拦截对应的事件,根据具体的实现逻辑,返回...
MrXI 发布于 3天前 阅读 262

Android 一个简单的登录界面(二)

Android 一个简单的登录界面第二版。包含登陆,注册,主要是里面的动画效果感觉会挺好的。
iSnowFlake 发布于 2个月前 阅读 3304

小程序思维导图,让小程序不再难懂(二)

>写在前面 第二波小程序思维导图终于出炉了,各位久等。 思维导图是一个很神奇的东西,它直观,界面美而有富有逻辑性。技术这种东西知识点多而杂,想要全面掌握不容易。需要用做到熟练更加不容易了。界面化的产物适合更加让人加深印象。当思维导图和技术结合到一起,会产生什么样的效果呢?自己去体会吧。 >小程序 小程序入门简单,会点前端的人基本都能很快上手。官方文档也写得比较清晰了,我也不做太多的重复动作。一些常用的功能或api总结了一下,希望你们能更深刻直观地认识一下小程序。 >思维导图 ![14、事件处理.png](http://upload-images.jianshu.io/upload_images/4120002-cd09146469590a7a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![15、文件引用.png](http://upload-images.jianshu.io/upload_images/4120002-004688a3b2b7d939.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![16、模板.png](http://upload-images.jianshu.io/upload_images/4120002-18734168471a8372.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![17、常用api.png](http://upload-images.jianshu.io/upload_images/4120002-9ea4e62b66f9f8c3.p...
java思维导图 发布于 2周前 阅读 2195 评论 6 点赞 5

Android性能优化——代码优化(一)

注:根据Android官方的建议,编写高效代码的三个基本准则如下: 不要做冗余的工作 尽量避免次数过多的内存分配操作 深入理解所有语言特性和系统平台的API,具体到Android开发,熟练掌握java语言,并对SDK的API熟悉,了如指掌。 一、数据结构的选择         正确的选择合适的数据结构很重要,对java中常见的数据结构例如ArrayList和LinkedList、HashMap和HashSet等,需要做到对它们的联系与区别有教深入的理解,这样在编写代码中面临选择时才能作出正确的选择,下面我们以android开发中使用SparseArray代替HashMap为例进行说明。SparseArray是Android平台特有的稀疏数组的实现,它是Integer到Object的一个映射,在特定场合可用于代替HashMap<Integer,<E>>,提高性能。核心实现是二分法查找算法。 ———————————————————————————————————————— SparseArray家族目前有以下四类: ———————————————————————————————————————— HashMap<Integer, Boolean> booleanHashMap = new HashMap<>(); SparseBooleanArray booleanArray = new SparseBooleanArray(); HashMap<Integer,Integer> int...
MrXI 发布于 1周前 阅读 404

2017最新最全的iOS App Store上架流程步骤

之前用AppCan平台开发了一个应用,平台可以同时生成安卓版和苹果版,想着也把这应用上架到App Store试试,于是找同学借了个苹果开发者账号,但没那么简单,还要用到Mac电脑的钥匙串申请发布证书和上传ipa,可没有Mac,同学的大老远的也不方便拿过来用,然后捣鼓了个虚拟机,卡的我怀疑人生,后面找到了一个工具,在Windows环境下终于上传成功,把我的iOS app上架流程分享给各位。
简符 发布于 2个月前 阅读 1619

Android SimpleAdapter

Android Adapter的简单封装,简化Adapter和ViewHolder的使用
sky-update 发布于 3天前 阅读 134

提交版本审核提示无效二进制文件Apps are not allowed to listen to device lock notifications.

Unsupported operation - Apps are not allowed to listen to device lock notifications.
久伴旧伴 发布于 4天前 阅读 176

2017 年移动应用开发十大趋势

在快节奏的 APP 开发领域,随时了解增强现实、即时应用(Instant Apps)和直接与云端交互等趋势,将有助于你的 APP 脱颖而出。
编辑部的故事 发布于 2周前 阅读 4737 评论 6 点赞 2

Android调式工具 --Facebook Stetho --无需root手机设备即可查看data目录下数据

我的CSDN博客同步发布:Android调式工具 --Facebook Stetho --无需root手机设备即可查看data目录下数据 一、前言     我们在android开发中都会写一个配置文件在SharePreference,或者存到本地数据库SQLite,但是这些都在/data/data/<package_name>包下面,然后这个目录需要root之后才能看到,在我开发中每次换一台设备想查看data下的数据就要root,然而 华为、小米、三星、这些手机root起来太费劲,还浪费时间到处找教程,很多手机都要在官网去解锁那些,反正我是很反感这样,不过这也是厂商的安全也做的够好,至此我才想能不能不root就可以查看data下的数据,经过一番折腾后,终于找到了一个好的工具,感谢Facebook呀,666 二、Stetho工具的爱不释手     Stetho是Facebook出品的功能强大的Android调式工具,在应用中集成Stetho之后,打开Chrome DevTools就可以方便地查看APP的界面布局、网络请求数据、SQLite数据库、SharePreference等信息,而且完全不需要对你的手机设备进行root操作,看到这儿是不是感觉很666呢,下面就是使用方法。         Stetho的集成非常简单,首先在Gradle中添加对Stetho函数库的依赖 ----------------------------------------------...
MrXI 发布于 1周前 阅读 231

react-native-router-flux 使用详解(一)

react-native-router-flux 使用详解
Angels_安杰 发布于 2个月前 阅读 652

【精品工具】用Appuploader发布上传iOS APP上架流程简单快速

Appuploader是一个IOS开发助手,可以快速,轻松地生成ios开发证书,不需要钥匙串助手; appuploader可以批量上传屏幕截图并将ipa文件上传到Apple商店,在windows,linux或mac上,不需要应用程序加载器和mac计算机。 我们知道发布一个app,一般是用到苹果的application loader助手或使用xcode上传应用,用过的都知道使用起来很繁琐,经常出错。而且只能运行在mac系统上。现在发现一个上传ios app的辅助工具,大大的提升了提交app上架的效率,简便高效,使用了一次就喜欢上了,分享给大家,这工具满足三个条件的技术达人才可以免费使用 1、          有IDP账号 2、          至少开发过二款软件 3、          喜欢分享技术 Appuploader开发助手,有几大功能,下面为大家一一介绍。   一、iOS证书和配置文件管理 对于iOS开发者,肯定熟悉苹果开发者证书,但也知道它的复杂性。特别是,团队的发展,多计算机的发展,证书的同步是长期存在的。使用appuploader创建Apple开发人员证书,轻松实现复杂的证书管理。 Appuploader支持创建各种Apple证书,并且创建过程非常简单,只需输入证书名称,创建邮箱等信息即可创建证书。 1.打开appuploader 2.点击认...
简符 发布于 2个月前 阅读 917

iOS崩溃日志之手动解析与自动解析

![输入图片说明](https://static.oschina.net/uploads/img/201704/23214326_2dn8.png "在这里输入图片标题") ### 前言 >  在日常开发中难免遇到程序崩溃的时候,若在Dev环境下通过编译器便能很容易定位到崩溃代码处,但是若版本发布在正式环境里(包括Adhoc和distrubute),我们便无法直接定位到崩溃代码处了。此刻app里的统计平台反馈给我们的是一段没有可读性的日志。那么如何高效、快速、准确地解析日志以便我们快速定位到问题代码? [talkingData平台上的崩溃日志] ![输入图片说明](https://static.oschina.net/uploads/img/201704/23214456_8eDC.png "talkingData平台上的崩溃日志") #### 一、所需文件 1. 崩溃日志文件 我们公司使用的是talkingData统计分析平台,故在网站平台可以看到详细的日志记录,平台上还能看到具体是哪一个版本的APP崩溃。从网站平台下载下来的日志文件为csv格式。 ![输入图片说明](https://static.oschina.net/uploads/img/201704/23221516_9fGr.png "在这里输入图片标题") 2. 符号表文件  2.1 依次点击 Xcode-->Window-->Organizer-->Archives,选中你的项目,右击,点击 “Show in Finder” 便可找到对应的xcarchive文件。 ![](http...
Janyau 发布于 4天前 阅读 93

小程序思维导图,让小程序不再难懂(一)

>写在前面 首先,很感谢大家喜欢我的思维导图。 有网友评论说:思维导图实际就是一种比纯文字更贴近人理解的模型——知识关系。的确,思维导图又称为脑图,是一种适合头脑风暴模式,同时又适合梳理点与点之间的一种表现形式。当然,java作为一门语言,设及的的技术很多,知识面也是很广。小小一张思维导图也无法容纳这么多信息,因此想要深入了解思维导图中的每一个节点就需要另外上网查找资料或查看相关书籍。当然,我偶尔也会在节点中给出相关的链接。通过链接至少可以加深对每一个知识点的印象。 >小程序 前段时间吵得很火的小程序,虽然现在有点平静下来的趋势,但也不可能完全磨灭。随着腾讯对个人开发者开发,相信有很多人都想拥有自己的小程序。本次就分享我开发过程中整理的小程序思维导图(还没完成整理完)。希望对初学者,或者想回顾小程序的童鞋有所帮助。 ![0、总览图.png](http://upload-images.jianshu.io/upload_images/4120002-2271a6d120e87e14.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![1、微信小程序.png](http://upload-images.jianshu.io/upload_images/4120002-80d5a52cdc6ae7da.png?imageMogr2/auto-orient/strip%7CimageView2/...
java思维导图 发布于 3周前 阅读 2541 评论 9 点赞 13

sqlite

As with lots of things in computer programming, there is no single "correct proceed" for the timing of closing a SQLite database (via close() on SQLiteOpenHelper if you are using that, or close()on SQLiteDatabase otherwise). The one fairly hard-and-fast rule is to not use multiple SQLiteDatabase objects for the same database across multiple threads at the same time. That can get you in trouble, unless you are doing your own thread synchronization. If you stick to one SQLiteDatabase object per database, thread synchronization is handled inside the SQLiteDatabase. Because of the one-database-for-all-threads rule, and because in many cases tracking when threads may or may not want the database can be tricky when you have many different components, some developers take the approach of having a singleton database manager, which lazy-opens the database... and never closes it. For example, a database-backed ContentProvideruses this pattern, as a ContentProvider is never dest...
grasp_D 发布于 1天前 阅读 68

Android性能优化——图片优化(二)

   图片的加载和显示是每个商业APP都避免不了的问题,对于图片重度依赖类APP,例如壁纸类应用,图片社交类应用,对于图片的处理将会影响到整个APP的用户体验。     在正式了解Android中如何优化图片相关的内容之前,我们先看看Android系统支持的图片格式。  一、图片的格式     目前移动端Android平台原生支持的图片格式主要有:JPEG、PNG、GIF、BMP和WebP(自Android4.0开始支持),但是在Android应用开发中能够使用的编解码格式只有其中三种:JPEG、PNG、WebP,图片格式可以通过查看Bitmap类的CompressFormat枚举值来确定。 public enum CompressFormat { JPEG (0), PNG (1), WEBP (2); CompressFormat(int nativeInt) { this.nativeInt = nativeInt; } final int nativeInt; }     如果要在应用层使用GIF格式图片,那么需要自己引入第三方函数库进行支持。 (1)、JPEG     JPEG是一种广泛使用的有损压缩图像标准格式,它不支持透明和多帧动画,一般摄影类作品最终都是以JPEG格式展示,通过控制压缩比,可以调整图片的大小。 (2)、PNG     PNG是一种无损压缩图片格...
MrXI 发布于 7天前 阅读 190

Eclipse: Failed to get the required ADT version number from the SDK

**Android Studio** 更新到 **2.3** 之后,发现 **Eclipse** 不正常了,警告信息如下。(因为各种原因,有老项目没有迁移到 AS 🤣 我也很无奈呀 🤣) ![此图来自 StackOverflow 一位网友](https://static.oschina.net/uploads/img/201703/28221222_AUJI.png "此图来自 StackOverflow 一位网友") ---- 那么问题可能出在 SDK 或者 ADT 上,那么先从 SDK 这里入手。Google、StackOverflow 一番后,该尝试的都已经尝试过,我也很无奈啊!☹️ 打开 SDK 目录仔细看了看,赶脚和以前不太一样,遂打开一台 PC 对比了一番,果然坑。。。特别是 tools 目录,这样就会产生很多坑,诸如导致 traceview、SDK Manager。。。不能正常使用。 ---- ## 解决方案 **单独给 Eclipse 下载一个新的 SDK** (🤗省🤗事🤗避🤗坑🤗 ) ## Solution **Please download a new SDK for Eclipse**...
XngPro 发布于 1个月前 阅读 1021 点赞 1

Qt硬件控制

http://n9.dy.fi/meego/html/qmsystem2/main.html https://github.com/nemomobile-graveyard/qmsystem https://github.com/kenaaker/BeagleBoneBlack  
心翔 发布于 2小时前 阅读 2

Android简单实现轮播

开发工具:Android Studio XML布局:com.jude.rollviewpager.RollPagerView 适配器:com.jude.rollviewpager.adapter.LoopPagerAdapter
MR_DY 发布于 3小时前 阅读 3

Android应用字体替换

很多应用程序都有替换字体的需求,主要是设计可能要显示一个独特的字体,比如有多少人,花费了多少钱,这种用不同的字体显示会有强提醒的作用,增强应用程序的体验。 替换字体又一般分为部分替换,比如只正对一行显示中的某一段或者某一个数字进行替换, 我们知道系统中我们可以对字体显示View设置Android:typeface属性,一般都有以下几种值可以选择:在手机上四中typeface替换,展示效果差距不大。 monospace  sanf  serif  normal 那如何才能自己用自定义的字体库来进行替换呐? 局部替换 一般都采用以下方法:针对要显示的TextView设置不同的Typeface,我们可以将一个ttf字库构造成一个Typeface,将构造的Typeface设置到要显示的TextView。这种比较方便的是字体库比较小,如果明确知道要显示的字库是什么,我们就可以只针对该字库来进行ttf生成。可以在一些开源的平台进行ttf的生成。ttf生成链接 样例代码如下 private static Typeface typeface; TextView tv = new TextView(this); tv.setTypeface(getTypeface(context)); public static Typeface getTypeface(Context context){ if (typeface == null) { typeface = Typeface.createFromAsset(context.g...
微笑的江豚 发布于 7小时前 阅读 57

结构体 函数

struct test { void fun() { printf("hello,world\n"); } }_t; struct test _t; _t.fun();  
赵大财 发布于 7小时前 阅读 1

react-native模拟器,adb联接逍遥android5.1

react-native使用模拟器时,需要的android版本必须是5+以上的,而现有的几个国内好用的模拟器都是android4.4,在逍遥安桌的论坛看到了有android5.1可以下就拿来用下了
小翔 发布于 8小时前 阅读 2

Android 之窗口小部件高级篇--App Widget 之 RemoteViews

  在之前的一篇博文(Android 之窗口小部件详解--App Widget)中,已经介绍了App Widget的基本用法和简单实例。这篇主要讲解 App Widget 的高级内容,即通过 RemoteViews 去管理Widget的中GridView、ListView、StackView等内容。在学习本篇之前,建议读者先掌握 App Widget 的基本知识。     1 RemoteViews等相关类的介绍 下面先简单介绍RemoteViews、RemoteViewsService、RemoteViewsFactory。 1.1 RemoteViews     顾名思义,它是一个远程视图。App Widget中的视图,都是通过RemoteViews表现的。     在RemoteViews的构造函数中,通过传入layout文件的id来获取 “layout文件对应的视图(RemoteViews)”;然后,调用RemoteViews中的方法能对layout中的组件进行设置(例如,可以调用setTextViewText()来设置TextView组件的文本,可以调用setOnClickPendingIntent() 来设置Button的点击响应事件)。     因此,我们可以将 “RemoteViews 看作是 layout文件中所包含的全部视图的集合”。 1.2 RemoteViewsService     RemoteViewsService,是管理RemoteViews的服务。     一般,当App Widget 中包含“GridView、ListView、StackView等”集合视图时,才需要使用RemoteV...
微笑的江豚 发布于 9小时前 阅读 2

Android 存储

public class TestPath extends BaseTestCase{ public void testCreate(){ File file=mContext.getExternalFilesDir("WFY"); Log.e(TAG,file.exists()+""); } }
风吹窗动叶声响 发布于 10小时前 阅读 3

集成 jpush-react-native 常见问题汇总 (iOS 篇)

给 iOS 应用添加推送功能是一件比较麻烦的事情,本篇文章收集了集成 jpush-react-native 的常见问题,目的是为了帮助用户更好地排查问题 ### 1. 收不到推送 - 确保是在真机上测试,而不是在模拟器 - 自己的应用已经在 Apple developer 给应用配置推送功能,创建推送证书 (并且保证 bundle id 与 Apple developer 上的是一致的)如果之前没有接触过推送证书建议看视频来 [官方集成视频](https://community.jiguang.cn/t/jpush-ios-sdk/4247) - 能够获取 deviceToken 但是收不到推送, 如果是使用 xcode 8,检查 (Project -> Target -> Capabilities ) Push Notification 选项是否已经点开,如果没有需要点开 ### 2. 收到一条通知 JS 层会有多个 ReceiveNotification 事件 - 升级 jpush-react-native 到最新版本 - 有没有在合适的地方 remove ReceiveNotification 事件,如果多次监听该事件会导致重复接收 ### 3. 如何消除 应用 icon 的角标(badge) 调用 JPushModule.setBadge 方法 如果设为 0,则表示情况角标 ``` JPushModule.setBadge(5, (badgeNumber) => { console.log(badgeNumber) }); ``` ### 4. 开发环境能够收到推送,生产环境收不到推送 - 如果是通过控制台发送...
极光推送 发布于 10小时前 阅读 36

什么是“移动先行”原则,如何践行?

2010年的全球移动通信大会上,谷歌时任首席执行官Eric Schmidt 提出:产品设计应遵循 “移动先行” 的原则。 该原则具体指什么?遵循该原则的依据有哪些?为什么它在产品设计中如此重要?本文中,我将重点回答这几个问题。   一、什么是“移动先行” 原则?   为了更好地理解该原则,首先要了解两个概念:   1. 响应式网页设计(RWD)   一种网页设计方法。该设计使网页自动适应不同设备(电脑,手机或其他移动端)的屏幕大小,且呈现的内容符合用户的浏览习惯,从而减少用户在浏览时的缩放,平移和滚动等操作。   响应式网页设计样例>>     2. “逐步增强”和“优雅降级”   这两个概念是在“响应式网页设计”之前被提出的。为了使网页或软件在不同的设备上都呈现出良好的效果,设计师在设计产品时分别为不同的终端设计不同的版本。   “逐步增强” 指:首先对低版本浏览器(如手机端)进行页面构建,保证最基本的功能,然后再针对高级浏览器(如电脑端)进行效果、交互等改进,追加功能等,以达到更好的用户体验。   “优雅降级” 指:一开始就针对高级浏览器,为产品构建完整的功能,然后再针对低版本浏览器进行兼容。   这两种策略实际是在设计时选取了...
jongde 发布于 10小时前 阅读 1

谈网络监控

为何需要网络监控: 互联网时代,看得更远,看得更清晰。随着互联网的飞速发展,互联网的使用越来越普遍,各种信息交互、网络安全、网络质量的要求是越来越高,不掌握先机,怎么决定下一步! 本人是多年监控工作经验的网络人员,总结一些经验,也为自己的工作做一个小结。 一:监控就必先需要多种监控软件 1.Cacti 2.Zabbix 3.Smokeping 4.Hostmonitor 5.......(网络软件很多,适用自己的才是最好) 二:功能介绍 1.Cacti ![输入图片说明](https://static.oschina.net/uploads/img/201704/27144259_nHsV.png "在这里输入图片标题") cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。 功能:着重于服务器流量观察,交换机设备的监控。能大规模创建监控主机,通过添加模板,能自定义绘图功能,具有强大的实用性、适用性。 性能优化:搭建cacti不难,性能优化是关键。性能优化可以有多方面,我这边简单举例:1).cacti自带轮询器脚本(cmd.php)改为spine,在设置修改“p...
ali安东尼 发布于 10小时前 阅读 3

okHttp

OkHttp使用完全教程 http://www.jianshu.com/p/ca8a982a116b
天-之-骄-子 发布于 11小时前 阅读 3

PerformSelector:onThread:withObject:waitUntilDone理解

  performSelector:onThread:withObject:waitUntilDone理解 直接看代码 // // ViewController.m // RunLoopDemo // #import "ViewController.h" @interface ViewController () @property (nonatomic, assign) BOOL isAborted; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self threadInfo:@"UI"]; _isAborted = NO; NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(newThread:) object:nil]; [thread start]; // When performing a selector on another thread, the target must have an active run loop [self performSelector:@selector(test:) onThread:thread withObject:nil waitUntilDone:NO]; } - (void)newThread:(id)obj { @autoreleasepool { NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop]; while (!_isAborted) { [currentRunLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; } NSLog(@"线程停止"); } } - (void)test:(id)obj { [self threadInfo:@"te...
xiaobai1315 发布于 11小时前 阅读 2

Android 动画

View动画 对象是View,动画是表象,实则view的位置始终没改变。有两种创建方式: 1、通过xml,可读性好 <?xml version="1.0" encoding="utf-8"?><!--动画结束后是否停留在结束位置--> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="false" android:zAdjustment="normal"> <translate android:duration="100" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" /> <rotate android:duration="400" android:fromDegrees="0" android:toDegrees="90" /> </set> tv = (TextView) findViewById(R.id.tv); Animation animation = AnimationUtils.loadAnimation(this, R.anim.view_anim); tv.startAnimation(animation); 2、通过代码动态创建 TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 100, 100); translateAnimation.setDuration(100); RotateAnimation rotateAnimation = new RotateAnimation(0, 90); rotateAnimation.setDuration(400); AnimationSet set = new Animat...
t_yapeng 发布于 11小时前 阅读 66

调整bootstrap modal窗口大小 以及可拖拽

调整modal窗口大小以及垂直滚动条 .modal .modal-body { max-height: 600px; overflow-y: auto; } 调整modal窗口宽度 <div class="modal-dialog" style="width:800px;"> modal窗口可拖拽 $("#aModal").draggable({ handle: ".modal-dialog", cursor: 'move', refreshPositions: false });  
wanYJ 发布于 11小时前 阅读 53

动态添加方法 并且动态的执行 有类方法 对象方法

// // ViewController.m // TESTzz // // Created by point on 2017/4/27. // Copyright © 2017年 dacai. All rights reserved. // #import "ViewController.h" #import "DCModel.h" #import <objc/message.h> static SEL _dcSel; static SEL _dcSel2; @interface ViewController () { Class _dcModelClass; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //动态的 添加方法 _dcModelClass = NSClassFromString(@"DCModel"); //这样的写法 不用头文件也可 //[DCModel class] 必须包含头文件 _dcSel = NSSelectorFromString(@"run:"); class_addMethod(_dcModelClass, _dcSel, (IMP)aaa, "v@:@"); //执行方法 static void(*action)(id, SEL,NSNumber *) = (void(*)(id, SEL,NSNumber *))objc_msgSend; id controller = [[_dcModelClass alloc] init]; //这样执行对象方法 action(controller, _dcSel,@(100)); _dcSel2 = NSSelectorFromString(@"run"); static void(*action2)(id, SEL) = (void(*)(id, SEL))objc_msgSend; a...
赵大财 发布于 11小时前 阅读 2

NSThread基本用法

1、创建线程 第一种创建方式: alloc init 特点: (1) 需要手动开启线程; (2) 可以拿到线程对象,进行详细设置; NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(showmsg) object:nil]; [thread start]; iOS10方法 NSThread *thread = [NSThread alloc] initWithBlock:<#^(void)block#> [thread start]; 第二种创建方式:detachNewThreadSelector 特点:自动启动线程,无法对线程进行更详细的设置 [NSThread detachNewThreadSelector:@selector(showmsg) toTarget:self withObject:nil]; 第三种创建方式:performSelector方法 [self performSelector:@selector(showmsg) withObject:nil]; [self performSelectorOnMainThread:@selector(showmsg) withObject:nil waitUntilDone:YES]; 2、设置线程属性 //设置线程的名称 thread.name = @"111" //设置线程的优先级,注意线程优先级的取值范围为0.0~1.0之间,1.0表示线程的优先级最高,如果不设置该值,那么理想状态下默认为0.5 thread.threadPriority = 1.0; 3、线程的状态 //线程的各种状态:新建-就绪-运行-阻塞-死亡 //常用的控制线程状态的方法 [NSThread exit];//退出当前...
xiaobai1315 发布于 11小时前 阅读 2

Objective-C KVO 中 runtime 探究

最近学习Runtime,顺便总结一下在Objective-C中KVO使用到的Runtime机制。 ###系统的KVO使用 故事还得从OC的KVO说起,一般的我们使用KVO类似的如下所示,创建一个对象,然后调用`addObserver`方法进行某个属性的监听,有意思的是,我们在创建对象处和调用了`addObserver`方法处打断点,然后使用po命令打印对象的isa,发现了对象的isa指针在调用了`addObserver`方法之后变了,明显滴,调用了`addObserver`方法之后使用了runtime机制动态的修改了对象的isa指针。 ![对象添加KVO监听之后isa的变换](https://static.oschina.net/uploads/img/201704/27113947_RjbW.png "对象添加KVO监听之后isa的变换") ###KVO中runtime的几个概念 大家一定会很好奇,runtime是怎么实现了KVO,那好下面就慢慢的揭开谜底。先了解几个runtime的概念: - 动态创建Class `objc_allocateClassPair`可以动态创建Class,`objc_registerClassPair`进行注册动态创建的Class - 修改对象的Class `object_setClass`可以修改对象的Class,也就是修改了isa指针指向的Class对象 - 动态添加方法 `class_addMethod`可以给类添加方法 - runtime方法调用 `objc_msgSend`和`objc_msgSendSuper`是OC消息发送机制的底层实...
aron1992 发布于 11小时前 阅读 2

iOS App 上架流程图文教程

在介绍上架流程之前先铺垫一下两个网站,开发者官网和iTunes Connect 开发者官网——https://developer.apple.com iTunes Connect官网——https://itunesconnect.apple.com APP上架的步骤大致分为下面的几个步骤: 1). 申请App ID 2). 在Mac本地创建证书签名请求文件(CSR文件) 3). 到开发者网站创建证书 4). 创建配置文件 5). 到 iTunes Connect 注册该 app 的信息 6). 在开发工具Xcode配置项目,打包,上传 7). 在 iTunes Connect官网提交审核 8). iOS 应用的证书选择: 1. 申请App ID 假设你是应经有了iOS开发者账号的iOS开发者,首先先登录开发者官网,进入文章的开头中所提到的开发者官网,如下全图所示: Snip20170320_1.png 在官网的右上角有一个显眼的Account,点击它并输入开发账号和密码,成功登录到页面,如下图所示: Snip20170320_2.png 紧接着上一步的界面呢,将按照上图的红色箭头指示的方框中的按钮,点击进去进行操作。成功进入界面后如下图所示,清晰可见界面的左上方有可供选择的菜单栏,根据自己的需要进行选择,由于自己是iOS开发者,所以选择了如图红色框表示的iOS,tvOS,watchOS这个选项: Snip20170320_3.png 接下来讲解一下这个界面的结...
卡奇匠 发布于 12小时前 阅读 2

《直播疑难杂症排查》之二:播放卡顿

本文将分析排查播放器无法流畅渲染数据的原因,并给出相应对策。
七牛云 发布于 13小时前 阅读 1

《直播疑难杂症排查系列》之一 :播放失败

《直播疑难杂症排查系列》系列文章,将把七牛协助客户解决直播问题的经验逐步分析出来,同时穿插音视频开发的基础知识和优化经验,分享给直播领域的开发者们。
七牛云 发布于 13小时前 阅读 1

Android 的滑动分析以及各种实现

一、滑动效果的产生     滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。 (1)、Android的坐标系         Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:          系统提供了getLocationOnScreen(int location[])这样的方法来获取Android坐标系中点的位置,即该视图左上角在Android坐标系中的坐标。在触控事件中使用getRawX()、getRawY()方法所获得的坐标同样是Android坐标系中的坐标。  (2)、视图坐标系     Android中除了上面所说的这种坐标系之外,还有一个视图坐标系,它描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相互相成的。与Android坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向,只不过在视图坐标系中,原点不再是Android坐标系中的屏幕最左上角,而是以父视图左上角为坐标原点,如下图:     在触控...
MrXI 发布于 6天前 阅读 1080 评论 6 点赞 3

Android基础夯实--你了解Handler有多少?

万丈高楼平地起,学习任何东西我们都离不开扎实的基础知识。本编文章通过对Handler相关知识的全面回顾,给Android开发者重新夯实基础。
Ryane 发布于 1个月前 阅读 1797 评论 8 点赞 2

Service Worker:让网页无网络也能访问

想要开发一个 PWA(Progressive Web App)应用,你必须知道首先知道,Service Worker 是什么,他是怎么工作的。
kymjs张涛 发布于 2个月前 阅读 2751 评论 7 点赞 2

UICollectionView详解

标准的UICollectionView包含三个部分,它们都是UIView的子类: Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容,这个稍后再说 Supplementary Views 追加视图 如果你对UITableView比较熟悉的话,可以理解为每个Section的Header或者Footer,用来标记每个section的view Decoration Views 装饰视图 这是每个section的背景 UICollectionViewDataSource(与数据相关) section的数量 -numberOfSectionsInCollection: 某个section里有多少个item -collectionView: numberOfItemsInSection: 对于某个位置应该显示什么样的cell -collectionView: cellForItemAtIndexPath: Supplementary View的方法(section头部视图,section尾部视图) collectionView: viewForSupplementaryElementOfKind: atIndexPath: UICollectionViewDelegate(与数据无关) 关于用户交互,UICollectionView也做了改进。每个cell现在有独立的高亮事件和选中事件的delegate,用户点击cell的时候,现在会按照以下流程向delegate进行询问: -collectionView:shouldHighlightItemAtIndexPath: 是否应该高亮? -collectionView:didHighlightItemAtIndexPath: 如果1返回结果为是,那么高亮 -c...
业界小白 发布于 2个月前 阅读 1043 评论 1 点赞 1

iOS中ImageIO框架详解与应用分析

ImageIO框架提供了读取与写入图片数据的基本方法,通过它可以实现对图片数据的深入分析与内容修改。
珲少 发布于 2个月前 阅读 1121 评论 4

小程序如约而至,微信小程序玩法大起底!!

博卡君的小程序使用教程
博卡君 发布于 4个月前 阅读 7096 评论 10 点赞 5

Lua与ObjC的交互

在这里,我想跟大家分享另外一种脚本语言的交互方式,就是使用Lua与原生的ObjC语言进行交互。
vimfung 发布于 4个月前 阅读 1988 评论 7

手把手教你, Jenkins构建iOS项目

Jenkins构建iOS项目 自动拉取GitHub/SVN 上传到fir/蒲公英
Royce她吃西红柿 发布于 5个月前 阅读 2918 评论 7 点赞 6

自己动手实现Android App插件化

Android插件化目前国内已经有很多开源的工程了,不过如果不实际开发一遍,很难掌握的很好。 下面是自己从0开始,结合目前开源的项目和博客,动手开发插件化方案。 按照需要插件化主要解决下面的几种问题: 1. 代码的加载 (1) 要解决纯Java代码的加载 (2) Android组件加载,如Activity、Service、Broadcast Receiver、ContentProvider,因为它们是有生命周期的,所以要特殊处理 (3) Android JNI代码的加载 (4) Android 特殊控件的处理,如Notification等 2. 资源加载 不同插件的资源如何管理,是公用一套还是插件独立管理? 因为在Android中访问资源,都是通过R. 实现的,   下面就一步步解决上面的问题 1. 纯Java代码的加载 主要就是通过ClassLoader、更改DexElements将插件的路径添加到原来的数组中。 详细的分析可以参考我转载的一篇文章,因为感觉原贴命名和结构有点乱,所以转载记录下。 https://my.oschina.net/android520/blog/794715 Android提供DexClassLoader和PathClassLoader,都继承BaseDexClassLoader,只是构造方法的参数不一样,即optdex的路径不一样,源码如下 // DexClassLoader.java public class DexClassLoader extends BaseDexClassLoader { pu...
xingjm8511 发布于 5个月前 阅读 2967 评论 2 点赞 7

使用原生JS封装Tap事件,解决移动端300ms延迟

为了防止误操作,移动端iOS操作系统针对原生click事件做了300ms的延迟,这在一定程度上影响了我们的使用体验。 GitHub项目地址:https://github.com/SimonZhangITer/MyTapEvent FastClick 现在有现成的插件fastclick可以解决这个问题,但是也有弊端: GitHub上最新版本的插件大小为25.4kb,轻量为趋势,能省则省。 它的核心思想是取消默认的click时间,判断当前dom节点的类型进行相应的操作,这个判断过程较为繁琐。 MyTapEvent 本人最近在做微信项目,由于fastclick插件存在一定弊端,因此开发了一个简单的tap事件,主要思想有以下几点: Thinking 一次tap事件包含touchstart和touchmove(轻微移动)以及touchend三种状态 callback方法在touchend后执行 根据chrome浏览器默认的判断取消点击的移动量,手指偏移量(水平或垂直)超过15px则判定为滚动,取消执行tap事件 手指按下时间过长不视为点击,默认时间间隔为500ms 使用HTMLElement来扩充原型,方便添加Event 使用单例模式,确保只加载一次 ok,思想定下来,代码写起来就清晰多了: if (!HTMLElement.prototype.addTapEvent) { HTMLElement.prototype.addTapEvent = function(callback) { var tapStartTime ...
Simon_ITer 发布于 5个月前 阅读 2124 评论 6 点赞 2

iOS开发CoreGraphics核心图形框架之六——梯度渐变

开发中有时会使用梯度渐变视图,在CoreGraphics框架中,提供了这个类型来创建梯度渐变:CGShadingRef与CGGradientRef。
珲少 发布于 5个月前 阅读 1001 评论 4 点赞 3

Ionic2:创建App启动页滑动欢迎界面

每个有逼格的App在第一次启动时都有一个欢迎界面,通常是几个单页面或者带动画的单页面滑动到最后一页有个启动的按钮,本文将使用Ionic2来创建,So easy!
_飞哥 发布于 6个月前 阅读 3392 评论 17 点赞 4

5款微信小程序开发工具使用报告,微信官方开发工具还有待提升

微信小程序已经内测有一段时间了,笔者本着好奇加学习的心态写了几个小demo,虽然在MINA框架上并没有遇到太多的坑,但官方开发工具实在不敢恭维。 - api提示不全,要一个个查api啊,写代码超级慢啊 - 很多必备的快捷键都没有,比如全选关键字、快速复制一行等等 - 颜色主题不能选?不喜欢白色风格怎么搞 - 没有插件 没有插件 没有插件 重要的事情说三遍 无奈笔者走上了尝试各种IDE的旅途,现在说一下笔者对于IDE的需求或者设想: - 轻量级:我不喜欢那种类似Eclipse的庞然大物,即使出现类似工具我也不会去使用,因为其中90%的功能都不会被用到。 - 可定制化的代码着色:代码着色是必备功能,如果支持颜色模板最好 - 准确的代码提示:这个太重要了,大家懂得 - 可调试:IDE可以进行调试或运行 - 实时预览界面:由于应用开发与网页不同,实时预览必须在程序运行时才会将动态数据加载到界面,这块我不抱太大希望 针对上面几个需求,笔者前后尝试了目前市面上支持小程序开发的工具,呕心沥血总结如下,以供大家参考。 ## 微信小程序官方开发工具 ![](http://upload-images.jianshu.io/upload_images/1846413-1588b61a769c9b16.gif?imageMogr2/auto-orient/strip) 注意,这个小...
memda 发布于 6个月前 阅读 4548 评论 13 点赞 7

深入理解gradle编译-Android基础篇

Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle一些常见问题进行一一介绍。
小米墨客 发布于 6个月前 阅读 3441 评论 7 点赞 12 打赏 1

番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!

博卡君的微信小程序 demo 来啦!
博卡君 发布于 7个月前 阅读 21023 评论 8 点赞 4

android初探ndk开发-eclipse版

正如其他所说,ndk r7开始,无需使用cygwin,就能生成so文件。对我这些菜鸟非常有帮助 - - 在eclipse新建一个android project,在根目录创建一个jni目录,如图所示: 在src目录创建一个JniTest.java文件,我的包名是com.mo.android_jni_2016.JniTest,如图所示: 在JniTest.java里面写上native代码 public class JniTest { public static native String addStr(String str1, String str2); public static native int addInt(int int1, int int2); } 由于eclipse能很方便能生成JniTest.class文件,只需要到对应的项目工程路径下,就能找到class文件,文件路径如类似:E:\xxxx\eclipse\workspace\Android_Jni_2016\bin\classes,在cmd下,使用javah com.mo.android_jni_2016.JniTest.class,就能在classes目录下,生成了一个com_mo_android_jni_2016_JniTest.h文件,如图所示: /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_mo_android_jni_2016_JniTest */ #ifndef _Included_com_mo_android_jni_2016_JniTest #define _Included_com_mo_android_jni_2016_JniTest #ifdef __cplusplus extern "C" { #endif /* ...
executor 发布于 7个月前 阅读 2444 评论 7 点赞 3

微信小程序(应用号)零基础视频课程之加法计算器应用

真正零基础,不需要html、css、js基础即可快速体验小程序开发过程
秀杰 发布于 7个月前 阅读 2707 评论 8 点赞 1

第六弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!

完结篇来了!
博卡君 发布于 7个月前 阅读 7047 评论 9 点赞 4

无内测账号,手把手教你微信小程序开发

「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试。可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面)。本以为没有 AppID 这个月就与小程序无缘了,庆幸的是微信这两天发布了正式版开发者工具,无需内测邀请也可以尝鲜了。
EarlGrey 发布于 7个月前 阅读 7202 评论 6 点赞 12

第五弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿,每日更新!

全球首个微信应用号开发教程第五弹来啦!
博卡君 发布于 7个月前 阅读 5535 评论 5 点赞 11
顶部