自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猫的阁楼

欢迎光临....

  • 博客(203)
  • 资源 (5)
  • 收藏
  • 关注

原创 [JNI] 开发基础(7)结构体

基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。有点生硬,对于java程序员来说,结构体就相当于java model比如定义 personclass Person{ string name; int arg; string cardId;}对于c来说要把这个对

2016-12-11 18:28:09 1258

原创 [JNI] 开发基础(6)字符串相关操作

撸代码时候字符串和数组是我们最常见的数据类型,要熟练使用c语言编程,字符串操作也要相当的熟练,这里介绍一些常见的字符串操作方法,不够完整,如果用到其他的方法可以查询 c语言字符串函数APIstrchr : 功能:查找字符串s中首次出现字符c的位置说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。void main(){ char *str = "this is str

2016-12-11 16:46:40 863

原创 [github高级控件] 带你走近 -> CircleIndicator指示器原点动画切换

分析github上CircleIndicator指示器切换动画,源码下载地址 思路: 1.画n个小圆点排列到布局中 2.再画一个moving小圆,结合view layer 分层呈现在画布中 3.结合viewpager addOnPageChangeListener不断的改变moving item位置思路清晰了开始撸代码:定义自定义属性<resources> <declare-style

2016-12-10 22:44:24 2933

原创 [JNI] 开发基础(5)内存分配

内存分配比较复杂,这里不做具体分析,可以看下这篇博客 分析的不错。静态分配与动态分配在C语言中,对象可以使用静态或动态的方式分配内存空间。静态分配:编译器在处理程序源代码时分配。动态分配:程序在执行时调用malloc库函数申请分配。静态内存分配是在程序执行之前进行的因而效率比较高,而动态内存分配则可以灵活的处理未知数目的。静态与动态内存分配的主要区别如下:静态对象是有名字的变量,可以直接对其进行操作

2016-12-10 21:08:42 1749

原创 [JNI] 开发基础(4)函数指针及指针函数

函数指针指向函数的指针包含了函数的地址,可以通过它来调用函数,函数指针与指针函数的最大区别是函数指针的函数名是一个指针格式:类型说明符 (*函数名)(参数)void (*sum)();实例:求两个数中较大值,较小值int max (int a, int b){ return a>b ? a:b;}int min (int a, int b){ return a<b ? a:b;}

2016-12-10 15:04:57 2132 1

原创 [JNI] 开发基础(3)指针操作

指针操作与指针变量相关-指针变量就是存放地址的变量。指针变量的引用主要涉及到两个方面:(1)对指针变量本身的引用,就是说对指针变量进行的各种运算(2)对指针变量所指向的目标,对指针进行引用。 通俗的说上述两种情况,一种是对地址的运算,一种是对地址所指向的变量进行间接引用。跟指针相关的操作符主要有3个:&、*、[](1)&:取地址运算符,(2)*:指针运算符—–取指针所指向的运算符。即:取指针变量(

2016-12-10 13:53:19 833

原创 [JNI] 开发基础 (2) 指针

指针是什么东西 指针处处在用,但是我们学习c语言时候,最难搞清楚的也是指针 一个生活中的例子:平时在淘宝上买东西,快递送到后,你不在家,那么快递员把快递寄送到门卫处,然后发短信通知你下班回家取。你根据短信就知道快递包裹在那里,这条短信的作用就相当于指针。在c/c++中的指针又是什么呢?看下面看一个申明一整型指针变量的语句如下:int * p;表面看起来与int i; 没什么区别,都是变量,只是

2016-12-03 21:18:27 710

原创 [JNI] 开发基础(1) c语言基本类型

头文件: 头文件引入,这个相当于java导入引用文件包,在编写的时候手动导入,有一部分ide会提示需要什么h文件#include <stdio.h>#include <stdlib.h>#include <string.h>#include <Windows.h>hello world学习什么语言,习惯性的从hello world开始void main(){ printf("hell

2016-12-03 18:20:51 598

原创 [JNI] 开发前言

前言:在大家都在努力转向RN开发的时,我选择了继续研究android底层的东西,开始了jni之旅现在android工作机会相比前几年要难找了,不是你能开发几个ui,懂的activity就OK了,翻看招聘要求,1.熟悉framework层,掌握多个xxxManager流程,深入研究Android源码2.熟悉ndk开发3.懂的音视频编解码我们看支付宝文件也可以知道,几百个so库,要是不懂c/c++没

2016-12-03 17:25:32 537

原创 小米手机退出app后收不到极光推送消息

场景: 进入app,发送消息,消息正常接收,连续2次back退出app后,收不到极光推送消息,pushService进程存在,app主进程被杀。华为,魅族都能在相同条件下接收消息,**小米手机 收不到消息** 针对小米手机分析分析: 1.MIUI 6开始增加了神隐模式-顾名思义是隐藏起来,MIUI 把一些耗电、耗流量的APP隐藏起来了。被加入在神隐模式列表中的应用,进入后台之后会禁止使用网络,

2016-11-30 10:27:09 10302

原创 动态启用和禁用mainfest中组件

/** * 动态设置启用和禁用Component(service,activity,receiver) * * @param context * @param enabled true:启用 ;false:禁用 * @param clasz 要动态修改组件class */ public static void setComponen

2016-11-08 17:55:35 631

原创 Caused by: java.lang.IllegalStateException: package not installed?

06-26 05:07:17.890: E/AndroidRuntime(3231): FATAL EXCEPTION: main06-26 05:07:17.890: E/AndroidRuntime(3231): Process: com.sample.calendar, PID: 323106-26 05:07:17.890: E/AndroidRuntime(3231): java.la

2016-11-08 09:35:34 3652 1

原创 React Native Button使用

属性accessibilityLabel string用于显示可访问性功能的文本color color文本的颜色(IOS),或按钮的背景颜色(Android)disabled boolIf true, 禁用该组件任何交互onPress function当用户点击按钮时要调用的处理程序title string显示在button上的文案实例:import React, { Co

2016-10-31 18:27:46 1464

转载 React和Redux的连接react-redux【转载】

原文地址leozdgao之前一直在探索React相关的东西,手上有个SPA项目,于是准备上Redux试试水。Redux本身和React并没有之间的关联,它是一个通用Javscript App模块,用做App State的管理。要在React的项目中使用Redux,比较好的方式是借助react-redux这个库来做连接,这里的意思是,并不是没有react-redux,这两个库就不弄一起用了,而是说re

2016-10-31 17:26:17 328

原创 RN listView使用

RN中的ListView是基于ScrollView扩展得来的,所以具有ScrollView的相关属性。 常用的属性:initialListSize:指定在组件刚挂载的时候渲染多少行数据。用这个属性来确保首屏显示合适数量的数据,而不是花费太多帧逐步显示出来 dataSource:数据源,类似于安卓中我们传入BaseAdapter的数据集合。renderRow:渲染某一行,类似于BaseAdapt

2016-10-28 10:47:29 3875

原创 React Native 画虚线 DashLine

React Native刚开始做,没有虚线控件,也没有Android中xml画虚线方便,可以用下面办法来实现。实现思路: 1.拿到一个宽度width,求出虚线长度len 2.生成一个数组arr,(后面会根据数组元素画n个view,组合成虚线) 3.生成虚线import React from 'react';import { Text, View, StyleSheet

2016-10-27 17:15:03 13240 3

原创 React native真机调试

前提:1、use开关打开 2、运行React Native react-native start 或者 react-native run-android真机调试:Android 5.0及以上使用adb reverse命令首先把你的设备通过USB数据线连接到电脑上,并开启USB调试运行:adb reverse tcp:8081 tcp:8081不需要更多配置,你就可以使用Reload JS和其它的开

2016-10-24 17:17:33 10842 1

原创 android studio配置Javah 和ndk-build

在studio中setting中可以添加一些extend tool方便开发,今天就说下怎么配置javah和ndk-buildsetting中选择extend tooljavah 命令的配置(一键生成h文件) 1.Program:$JDKPath$\bin\javah.exe 这里配置的是javah.exe的路径(基本一致)$JDKPath$可以从右侧按钮(insert mac...)中选择2.Pa

2016-10-23 00:02:46 7174 2

原创 使用Python教你秒搭本地服务器

第一步,下载Python,安装Python,我使用的是2.0以上版本 ,安装不用多说 直接下一步,安装完成后把python的安装目录添加到path系统环境变量。 再测试python安装是否成功,cmd打开命令行输入 python 命令。第二步 创建服务器目录 在计算机中随便创建个目录,比如D:/123 然后使用cmd进入到123目录下,输入下面的一行命令 ,其中8088是端口号(随意设置不要被占

2016-10-13 10:09:29 7075

原创 Gradle之SourceSet

介绍–sourceSet与项目结构有关,和maven一样,在默认的情况下,项目的目录结构是固定的Java的标准项目目录布局,只不过maven是不可以修改的,但是Gradle可以修改。java插件引入了一个概念叫做SourceSets,通过修改SourceSets中的属性,可以指定哪些源文件(或文件夹下的源文件)要被编译,哪些源文件要被排除。Gradle就是通过它实现Java项目的布局定义。目录–Ja

2016-09-18 23:56:42 35197 1

原创 Gradle配置dependencies

dependencies { compile fileTree(dir: 'libs', includes: ['*.jar']) compile project(':honjane-demo-library') betaCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'

2016-09-18 16:52:33 20771

原创 Gradle 配置 BuildConfig详解

BuildConfig 前面文章有简要提到,这次详细介绍每个命令代表什么。这个功能非常强大,我们可以通过在这里设置一些key-value对,这些key-value 对在不同编译类型的 apk 下的值不同,比如我们可以为debug 和release 两种环境定义不同的服务器先来看下简单的release模式buildTypes { release { //是否开启混

2016-09-08 00:04:07 5560

原创 Gradle基础介绍

Android Studio项目包含了一个顶级的构建文件和适用于每个模块的构建文件。在项目路径下有个 build.gradle,这些都是纯文本文件,使用了Groovy语法结合了Android plugin for Gradle提供的标签来配置项目的构建。每个项目至少有一个project,一个build.gradle就代表一个project,每个project可以包含很多个task,task中

2016-09-06 22:33:40 465

原创 自定义TextView显示指定行数

接到需求,大段的商品介绍,默认情况先显示3行,其他没显示完的内容折叠,点击箭头后,展开显示全部文本。其实很简单,只需要通过行高*行数,动态的设置TextView的高度。直接贴代码 :/** * 多行textView显示指定行数 * Date: 2016-08-25 * * @author honjane */public class LineTextView extends Linear

2016-08-25 16:40:19 2600

原创 Jpush踩过的坑

JPush集成,客户端和服务端都不需要进行二次开发,只要配置一下就可以了,最多发送消息这块服务端需要调用一下Jpush的接口,就一个http请求,非常简单,要是不想自建推送平台,Jpush,Mipush 都是不错的选择。一直以来,都是使用的MiPush推送消息,领导要求切换成Jpush,理由嘛,说是不稳定,才搞了这么一朝,那就切吧,在过渡阶段,需要两个push共存,这样也就带来些bug。1、两种pu

2016-08-12 23:35:21 5894

原创 Unable to instantiate application com.honjane.app.MyApplication

坑了一个晚上的crash ,立个flag纪念下 Process: com.honjane.app, PID: 19363 java.lang.RuntimeException: Unable to instantiate application com.honjane.app.MyApplicati

2016-08-04 15:09:29 2393 1

原创 反射: 反射在中Android运用

JAVA反射机制是在“运行状态”中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了几个功能:在运行时判断任意一个对象所属的类、在运行时构造任意一个类的对象、在运行时判断任意一个类所具有的成员变量和方法、在运行时调用任意一个对象的方法。通过前面对反

2016-07-31 22:37:34 1774 2

原创 反射:集合泛型的本质

Java中集合的泛型,是防止错误输入的,只在编译阶段有效,绕过编译到了运行期就无效了。好处是避免强转类型,造成错误。public class SetReflect { public static void main(String[] args) { List listA = new ArrayList(); // 泛型 string Lis

2016-07-31 00:13:01 573

原创 Android N 调用相册crash- FileUriExposedException

Android N 文件系统权限的变化 为了提高私有文件的安全性,在targetSdk版本为N或者以后版本的app中,其私有目录将会限制访问。这可以防止私有文件元数据的泄露,比如文件大小或者是文件是否存在。但这给开发者带来了很多不利的影响:文件的owner不能放宽文件权限,如果你使用MODE_WORLD_READABLE或者 MODE_WORLD_WRITEABLE操作文件,将会触发Securit

2016-07-28 17:17:03 17021 8

原创 HashMap分析

hashMap与TreeMap一样继承AbstractMap,实现了Map的一些方法, 主要分析它的get,put,remove等方法。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, SerializableHashMap是在bucket中储存键对象和值对象,作为

2016-07-20 23:38:40 796

原创 算法:字符串旋转

题目:输入一个字符串,逆序输出字符串 例如:i am kity –》 ytik ma ipublic class ReverseDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入字符串"

2016-07-17 21:45:55 420

原创 Java反射:数组

java.lang.reflect.ArrayJava反射机制通过java.lang.reflect.Array这个类来处理数组。不要把这个类与Java集合套件中的java.util.Arrays混淆,java.util.Arrays是一个提供了遍历数组,将数组转化为集合等工具方法的类。创建一个数组Java反射机制通过java.lang.reflect.Array类来创建数组。下面是一个如何创建数组

2016-07-14 22:17:04 615

原创 java反射:泛型

泛型方法返回类型如果你获得了java.lang.reflect.Method对象,那么你就可以获取到这个方法的泛型返回类型信息。如果方法是在一个被参数化类型之中(如T test())那么你无法获取他的具体类型,但是如果方法返回一个泛型类(如List test())那么你就可以获得这个泛型类的具体参数化类型。泛型变量类型同样可以通过反射来访问公有(Public)变量的泛型类型,无论这个变量是一个类的静

2016-07-14 00:18:06 568

原创 反射:类,构造器,方法使用

public class Demo { public static void main(String [] args) throws Exception { try { //通过全限定名找到class Class t = Class.forName("com.honjane.demo.javademo.ReflectModel"

2016-07-13 00:04:19 408

原创 Android-VR 支持流媒体

Google对vr支持非常速度,从0.7版本开始关注gvr-Android-sdk,这个版本还是比较初级,还只能支持图片,本地视频,如果你选择一个remote视频,就会报io异常,看了下源码,还没对远程视频做支持。 不过2周时间就对远程视频支持了,可以使用http访问视频地址,我赶紧尝试了下,发现还是坑,只是对mp4等一些视频格式支持,老板要的是流媒体啊,对m3u8不支持怎么是好,赶紧去g

2016-07-11 22:07:19 3268 8

原创 Java 反射:Classes

Class对象 在想要知道一个类信息之前,需要获得该类的Class对象,java中类的属性,方法,接口,类型都与该Class对象有关。如果你在编译期知道一个类的名字的话,那么你可以使用如下的方式获取一个类的Class对象。Class myClass= MyObject.class; 如果你在编译期不知道类的名字,但是你可以在运行期获得到类名的字符串,那么你则可以这么做来获取Class对象:Stri

2016-07-10 23:37:46 491

原创 算法:求1+2+3+...+n

题目:求1+2+3+…+n要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)如果只是求求1+2+3+…+n这个很简单,利用数学公式就可以计算了 sum=(1+n)*n/2或for循环中 sum += index;java不太好实现,不过c++很容易就搞定了,只用构造函数#include <iostream>using namespa

2016-07-10 11:22:30 2066

原创 TreeMap分析

TreeMap是基于红黑树实现的,红黑树是一种特殊的二叉树,百科一下介绍红黑树的性质: 性质1. 节点是红色或黑色。 性质2. 根节点是黑色。 性质3 每个叶节点(NIL节点,空节点)是黑色的。 性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。 每次插入或者删除时,需要

2016-07-10 10:41:32 622

原创 Stack介绍

在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出 Stack继承Vector,他对Vector进行了简单的扩展publicclass Stack<E> extends Vector<E> {//调用默认构造器 默认Vector容量10 public Stack

2016-07-08 00:10:02 585

原创 Class类文件结构之ConstantValue属性

编程过程中经常用的static,final关键字,也经常听到同事谈起这些词,到底他们怎么样呢,jvm中class类文件结构可以找到答案。ConstantValue属性ConstantValue属性的作用是通知虚拟机自动为静态变量赋值,只有被static修饰的变量才可以使用这项属性。非static类型的变量的赋值是在实例构造器方法中进行的;tatic类型变量赋值分两种,在类构造其中赋值,或使用Cons

2016-07-06 00:03:29 7017 11

gvr-Android-demo实例

在Google官方用例基础上,实现流媒体实例,版本0.8支持hls

2016-07-11

swipeListView优化

SwipeListView 详解 实现微信,QQ等滑动删除效果 简单快速,代码易懂,不需要带入github库

2015-12-25

SwipeListView实例源码

SwipeListView 详解 实现微信,QQ等滑动删除效果 ;blog地址http://blog.csdn.net/honjane/article/details/38404143

2015-06-18

Android自动清理无用资源

使用步骤:http://blog.csdn.net/honjane/article/details/41351183 Android自动清理资源文件,节省了你去一个文件一个文件的找引用类,和繁琐的删除工作,平常你删项目中的无用资源可能要几个小时,现在只需几秒钟时间 目前支持 图片,layout,menu 删除

2014-11-21

Android自动清理无用资源文件

Android自动清理资源文件,节省了你去一个文件一个文件的找引用类,和繁琐的删除工作,平常你删项目中的无用资源可能要几个小时,现在只需几秒钟时间 目前支持 图片,layout,menu 删除

2014-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除