- 博客(13)
- 收藏
- 关注
原创 使用AndroidStudio 导出Jar包
一、前言在平时的开发中我们可能将我们工程中的某些都行抽取出来作为一个共用的模块,为了方便使用我们会将其打成一个Jar包的形式,在Eclipse中我们直接使用export就行了,可是当我们使用AS进行开发的时候却没有这个功能了,在AS中使用的是Gradle的方式进行代码的构建,所以有所区别,gradle采用的是groovy的语言。二、使用1.创建构建TaskGradle执行构建时需要一个build.g
2017-07-01 18:12:47
481
原创 JAVA中的Runtime启动子进程并杀掉
一、前言最近在项目中需要将一个java工程打成一个jar包,并在运行jar包后启动通过java中的runtime类来启动一个nodejs的服务,在做的过程中遇到了一些不小的坑,下面就将其记录下来。二、Runtime类Runtime.class是java.lang包下的一个类,在开发Android过程中我们有时需要与jni进行交互,我们使用System.load来加载so库,其底层也是调用了Runti
2017-05-20 13:18:52
10333
原创 使用AndroidStudio中的CMake开发JNI
一、前言在平时的Android开发的过程当中,我们可能会接触到需要要与底层交互的场景,例如对数据的加密和解密我们一般会将这部分工作放在jni层来做,这样减少了别人对我们APK反编译的威胁,在jni层我们再对so库进行加壳后更进一步的保证了我们核心东西的安全,现在大部分的开发都是用Android Studio了,本文简单的介绍一下在Android Studio中开发jni的方法。在Android St
2017-04-23 19:52:24
649
原创 Java中的CyclicBarrier和CountDownLatch
一、前言在平时的开发中,为了加快程序的响应速度充分利用CPU的资源,我们会采用多线程的方式进行编程,但是如果我们的线程之间如果存在一定的逻辑关系(例如:线程A需要等到线程B和线程C执行完才开始运行),这个时候我们可以通过加Flag的方式或则使用join都等可以实现,但是感觉这种方式不优雅,JDK为我们提供了两个好用的API。下面我们就来看看它们如何使用。二、使用1.Tread类中的方法:1).joi
2017-04-16 18:25:22
415
原创 AndroidStudio Gradle导入项目配置
前言:可能有很多人和我一样,有时候从Github上下载一个感兴趣的项目后,迫不及待的用AS打开想运行看下效果,结果噩梦就这么开始了,AS一直停留在Build阶段没完没了,你心里还一直存有一丝希望它会Build完的那一刻,直到你含泪按下了关机键。。。哈哈开个玩笑而已!下面我们就来看看如何对我们新下载的项目进行配置后让AS能很快的打开。AS的配置:1.gradle:在我们安装好AndroidStudio
2017-03-25 15:07:20
7749
1
原创 JavaScript中的Promise机制
1.前言:如我们所知道的javascript是一门单线程语言,不像java语言中有多线程的机制,前不久做项目的时候,需要在前端使用js进行一些列的ajax异步请求,这些请求之间有一种关系,就是下一次请求的参数是上一次请求的结果,在javaweb端我们可以很容易的用同步请求的方式解决,阻塞线程知道函数执行完,但是在前端的ajax中就得不断的嵌套函数,十分的恶心,好在最后找到了Promise这个好东西,
2016-12-11 22:32:57
1044
原创 JS计算两个时间段内的工作时间(9:00-18:00)
一、前言:由于工作需要,需要计算两个时间段内的工时,只算正常工作时间的,精确到分钟,所以就写了个函数,没怎么优化,测试了几次发现计算有点误差,先用着,将它记下来,以便以后使用。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <l
2016-10-30 15:22:40
3849
1
原创 Android开发之JNI基础
在Android的开发中,有时候我们需要和底层的C代码进行交互,这时我们就需要使用JNI技术了,可能我们不需要去直接编写C代码,但是我们能理解和编写简单的使用JNI也是对我们的开发有很大帮着,例如,有时候我们需要使用一些对象云存储服务的时候,它给我们带来便捷的同时也带了一些危险,如果我们直接把密钥写在Java层,很容易被人家反编译后知道,然后访问我们的云存储,为了降低这种风险,我们可以使用JNI将密
2016-09-11 23:06:57
350
原创 Android开发之利用注解简单实现动态权限申请
搞开发的同学大家都知道,在Google推出6.0以后,提出了一个动态权限申请机制,逐步解决Android的安全隐患,算是在不断的进步吧,那么这会对我们的开发带来什么影响了?如果我们在开发的时候,如果将项目的targetVersion指定为23以上,那么系统就会认为我们已经对新特新做了适配,在新的动态申请权限模式下,权限分为了两类,一种是普通的权限,一种是系统认为的危险权限,在之前的开发中,我们只需要
2016-08-25 22:49:45
3343
原创 Java中的锁机制学习笔记
今天回顾了下java中的锁机制,和object类中中的wait(),notify(),notifyAll();每次敲代码的时候老看见这几个方法,总让人将它们和Android中的notifyDataSetChanged()的方法想到一块去,其实这些东西在Java基础的时候就已经学过了,可能是学的不扎实所有总有一种似成相识的感觉,来来回回,有一种身体被掏空了的感觉!废话不多说,看看这几个方法的使用场景,
2016-08-23 23:36:11
667
原创 Android开发之WebView知识和常见问题
Android开发之WebView知识和常见问题一、前言最近在学习HTML5相关的知识,发现前端技术的功能越来越强大了,很多功能如果我们通过原生代码的形式进行实现的话相对于H5会花费数倍的时间,在最求快速迭代的时候是不可取的,再一个就是现在App的种类也越来越多了。以前一提起Android开发,我们就会想到Java,一提起IOS我们就会想到Object-c、swift,可是技术的进步速度之快让人难以
2016-08-10 14:13:41
2251
原创 Android中使用自定义的VideoController和MediaPlayer实现视频的窗口和全屏播放
基于MediaPlayer的能窗口和全屏切换的视屏播放器之前在一个项目中做了一个能窗口化和全屏切换的播放器,做之前在网上也看了很多的demo,今天为了记录下自己的学习成果,特意将它写下来供自己以后参考和对大家有所帮助,废话不多说,直接开始正题。一:视频播放的Activity类首先我们看视频播放的Activity的代码之前,我们先看一下google文档中对mediaPlayer的
2016-04-16 18:17:10
6936
9
原创 Android使用系统自带的audioreorder和mediaplayer进行录音和播放,外加进度条的滚动!
最近由于项目的需要,需要在app中做一个小的录音模块,在录完音后可以进行播放,由于是新手,做的时候遇到了很多的问题,下面就将我写的demo记下来,作为笔记,希望对大家有点帮助!一.首先是Mediarecorder的部分进行录音:1.按照google文档的对录音进行初始设置,代码如下: private void startRecorder() { mMed
2016-01-06 20:50:53
1761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人