- 博客(28)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JNI之NDK 开发入门一 hello world(看完学不会你打我)
一 JNI和NDK 相关介绍1 什么是JNIjni 全称 java native interface 即java 本地接口 ,是java 平台的特性,主要定义了native方法,目的实现java 和 c/c++代码互相调用,能够使java文件代码使用到C/C++语言. JNI不局限于android平台,(window的dll文件,linux 的so库)2 使用JNI的作用1)加密:产品核心或重要功...
2018-05-03 20:44:50
335
原创 Android 性能优化(一) 之启动优化提升35%
文章目录初始启动加速启动主题优化1.默认情况2.启动页设置系统默认背景为null,再加延时启动3.设置闪屏图片主题代码优化Application 优化闪屏页业务优化初始启动加速来看一下Google官方文档《Launch-Time Performance》 对应用启动优化的概述;应用的启动分为冷启动、热启动、温启动,而启动最慢、挑战最大的就是冷启动:系统和App本身都有更多的工作要从头开始!...
2019-06-23 23:03:20
262
原创 Flutter核心编程三:Dart基础语法之对象的构建者以及操控着
Dart语法–对象的构建者以及操控者文章目录Dart语法--对象的构建者以及操控者typedef泛型控制语句forwhile and do-whileSwitch and case,enumExceptions(异常)构造函数命名构造函数重定向构造函数超类构造函数Initializer list(初始化列表)工厂构造函数Getters and setters抽象类接口mixintypedef...
2019-02-28 14:50:23
204
原创 Flutter 核心编程二:Dart基础语法之基本数据类型,数组,方法,Runs,函数闭包,typedef,操作符
Dart语法概要// 定义个方法。printNumber(num aNumber) { print('The number is $aNumber.'); // 在控制台打印内容。}// 这是程序执行的入口。main() { var number = 42; // 定义并初始化一个变量。 printNumber(number); }所有的函数都返回一个值。如果没有指...
2019-01-29 09:26:32
2732
原创 Flutter 核心编程一:跨平台介绍与环境搭建
为什么我们需要跨平台开发?本质上,跨平台开发是为了增加代码复用,减少开发者对多个平台差异适配的工作量,降低开发成本,提高业务专注的同时,提供更好的体验。通俗了说就是:省钱、偷懒。就目前来说,跨平台的开发主要有三个:1. react native、weex均使用JavaScript作为编程语言,目前JavaScript在跨平台开发中,可谓占据半壁江山,大有“一统天下”的趋势;2...
2019-01-27 16:32:52
238
原创 数据结构与算法(三)-哈希表
一、哈希表介绍1.由来我们知道,数组查询容易,插入和删除困难;链表查询困难,插入和删除容易。数组和链表的优缺点刚好互补,将他们结合起来,就有一种寻址容易,插入删除也容易的数据结构。哈希表就是这样一种数据结构。2.基本概念哈希表(也叫散列表),是根据关键码值(Key)(关键码值就是key的Hash值)而直接进行访问的数据结构。给定表M,存在函数f(key),对任意给定的关键字值key...
2019-01-10 20:53:35
259
原创 数据结构与算法(二)-栈,逆波兰表达式,递归,队列
一、栈栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表。其实栈可以理解成前一节讲的顺序表和单链表,只不过是不能从中间插入或者删除元素,和指针指向是相反的,由栈顶逐个指向栈底.栈的应用:逆波兰表达式。1.栈的实现栈有两种实现方式:数组(顺序表)和链表。使用数组...
2019-01-06 21:28:04
1160
1
原创 数据结构与算法(一)-顺序表与链表
一 .前言 1.什么是数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构的逻辑结构: 指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后关系,而与他们在计算机中的存储位置无关。逻辑结构包括:...
2018-12-17 22:33:52
358
原创 JAVA静态代码块
一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....
2018-11-08 11:04:23
99
原创 Android 沉浸式全面详解(这一篇文章就够了)
方法一:通过设置Theme主题设置状态栏透明因为 API21 之后(也就是 android 5.0 之后)的状态栏,会默认覆盖一层半透明遮罩。且为了保持4.4以前系统正常使用,故需要三份 style 文件,即默认的values(不设置状态栏透明)、values-v19、values-v21(解决半透明遮罩问题)。values styles.xml<style name="AppT...
2018-10-22 19:36:54
993
原创 热修复
一,热修复分类1.阿里系:DeXposed。andfix 从底层C的二进制来入手的。2.腾讯系:tinker Java类加载机制来入手的。二,什么是热修复? 一般的bug修复,都是等下一个版本解决,然后发布新的apk。 热修复:可以直接在客户已经安装的程序当中修复bug。bug一般会出现在某个类的某个方法地方。如果我们能够动态地将客户手机里面的a...
2018-08-21 20:04:41
327
原创 react native之四React组件化开发
一.变量的作用域1.函数内的局部变量,只能在函数内读写,函数运行完后销毁(闭包除外)2.class内的成员变量,在单个class的实例内读写,实例销毁时一并销毁,使用时不要忘记前面加this3.class内的静态成员变量,在所有class的实例内共享,不会自动销毁,其他模块可通过此class访问4.class外的变量,在所有class实例内共享(共有),不会自动销毁.除非明确exp...
2018-08-02 15:25:44
709
1
原创 react native 之三 reactJSX基础
1. ReactJS 和 React Native 比较2.reactJSX书写借鉴于XHTML的一些规范 (1)开始和结束标签配对 <组件>ooxx</组件> (2)无内容的组件标签应写为自封闭标签 <组件/> (3)可自定义属性,字符串值应使用双引号,其他值用{}...
2018-07-31 18:57:50
338
原创 react native 之 node 基础
1.为什么React Native 需要node.js (1) 提供React Packager的运行环境 (2) 提供npm包管理器来安装第三方模块node_module (3) 提供一些可以参考的规范react packager的作用: 2.npm如何用?npm install 后面可以跟参数-g 表示全局(安装可在命令行直接执行的模块...
2018-07-31 16:44:08
999
原创 react native之ES6基础
1.变量的声明 : var 或者 let var 和 let 有如此......这般不同等等虽然大部分现有的代码都是var 总之你始终使用let就好了2.常量的声明:constconst one = 1 3.没有声明或者声明没有值的都是undefine4.箭头函数:箭头函数类似于很多语言的中有的lambda表达式,更接近于函数的数学表达式例如:f(x) = πx² ...
2018-07-31 15:17:22
189
原创 react native 之环境搭建常见问题
1.Error: Unable to resolve module `AccessibilityInfo` from `\react-native-implementation.js`问题原因:react-native >> 0.55.4babel-core >> latest babel-loader >> latestbabel-preset...
2018-07-30 15:10:14
447
原创 Android 逆向之一JVM VS Dalvik
java虚拟机和Dalvik虚拟机的区别Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例, ...
2018-07-12 16:51:17
187
转载 Android内存优化——常见内存泄露及优化方案
如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面介绍一些在Android开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在Android开发中会经常用到,但是如果使用不当就会...
2018-07-04 16:25:09
194
原创 android 7.0之后版本更新安装出现file:// URI引起的FileUriExposedException
在我们app版本更新的迭代几个版本之后发现这次这个版本在7.0的手机上下载新版本,无法安装,出现怎么会这一次出现这个问题呢?? 原来是我们这次版本更新将targetSdk 变到了25 以前是23 所以在以前的版本更新是不会出现这个问题, 默认代码会兼容高于23的版本.所以解决的方法我们可以把build.gradle的targetSdk变回到23,但是这样 不是最好的解决办法 如果项目以后还是需要使...
2018-07-04 14:59:33
1068
原创 Android 三天学会JNI之二NDK实现JNI调用流程
# 交叉编译* 在一个平台下编译出另一个平台可以执行的二进制程序* CPU平台:arm,x86,mips* 系统平台:Windows、Linux、Mac OS* 原理:模拟另一个平台的特性去编译代码 * 源代码->预编译->编译->链接->可执行程序* 工具链:一个工具使用完毕自动使用下一个# 常见工具* NDK:native development kits* CDT:C...
2018-06-20 11:06:42
228
原创 Android 三天学会JNI之一基础知识C
一 JNI知识复习(在前面的文章也有提到,这里只是复习)JNI java native interface 即java原生接口实现java代码和原生代码进行互相调换,例如(c/c++)代码为什么要进行交互?首先 Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。然后, Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发...
2018-06-13 15:05:01
232
原创 GIT 命令
git reset HEAD 对上次工作区add的全部撤回addgit reset HEAD XXX/XXX/XXX.java 对某个文件进行撤销git reset id 撤回到上次commit 的id ,代码不会撤销git reset -hard id 撤回到上次commit 的id,代码也会撤销git reflog 分支名 查看该分支所有提交的记录git log 查看本地提交记录...
2018-05-18 18:58:52
117
原创 Android ViewPager 几种开发案例的使用
一. 带有小圆点的无限轮播广告// 准备显示的图片集合mList = new ArrayList<>(); for (int i = 0; i < mImages.length; i++) { ImageView imageView = new ImageView(this); // 将图片设置到ImageView控件上 imageView.se...
2018-04-25 19:36:40
927
原创 将代码提交到github的两种方式(其他项目管理网站类似)
首先先去git官网下载git,现在就去.下载完成之后,右键git bash 使用命令行配置你的git的用户名和邮箱,因为git是分布式系统,所以每个用户都是独立的命令行输入:git config --global user.name "Your Name"git config --global user.email "email@example.com"当然这里是全局配置git账户和用户名,这样...
2018-04-24 21:25:56
1473
原创 从gitlab 或者公司的版本控制服务器里面克隆的代码但是导入到as里面没有显示出分支情况
1,如果clone的代码项目确实有多个分支,那么rebuild一下项目,然后再as的编辑Event log查看 会出现 add Root 2,点击add root 就可以在as右下角看到分支情况,默认分支前提是你的as必须配置了git哦...
2018-04-03 14:26:40
927
原创 Error:This Gradle plugin requires Studio 3.0 minimum以及Installation failed with message INSTALL_.....
今天导入新的项目的时候出现Error:This Gradle plugin requires Studio 3.0 minimum,是说我的as里面gradle插件最少都需要我的as版本为3.0,我的as目前版本和协同开发人员一样2.2.2 所以为了保持项目在开发过程中不更新版本,解决如下:在gradle.properties中加上android.injected.build.model.onl...
2018-03-22 10:05:11
315
原创 仿支付宝向商户付款的个人界面
上周项目有个需求就是项目增加一个额外的功能就是提供一个向商户付款的功能,当然这个功能感觉也不难实现问题是交互设计没有,自行发挥,于是我仿照了支付宝的,效果如下:点击条形码和放大的效果功能主要是自定义气泡popupwindow实现,和使用谷歌官方提供的Zxing实现的带有logo二维码和条形码一 , pupopwindow 气泡自定义:public class PopuView exte...
2018-03-12 11:23:58
5018
1
原创 android 沉沁式简单实现
1,直接完全沉侵设置全屏显示getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);设置状态栏透明getWindow().setStatusBarColor(Color.TRANSPARENT);2不沉下去改变状态栏颜色为acitity主题颜色
2017-07-29 17:35:38
646
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人