- 博客(34)
- 收藏
- 关注
原创 浅析Android Camera架构
本博文是基于Android 4.4讲解 1、application 层: 当我们Android工程师想打开camera时通常直接调用Camera.java中的 Camer.open(cameraId)静态函数 camera.java 位于 frameworks/base/core/java/android/hardware目
2016-08-23 12:01:33 4089
原创 android.mk = 和 :=区别
1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值 x = love y = $(x) android x = hate $(warning $(y)) y是ha
2017-04-05 11:53:07 542
原创 Android Studio Run程序时自动执行自定义task
android { compileSdkVersion 19 buildToolsVersion "25.0.2" defaultConfig { applicationId "xxxxxxxxxxxxxx" minSdkVersion 8 targetSdkVersion 19 } buildTypes
2017-03-11 14:16:43 5802
原创 android camera surfacetexture使用
需求:有时候我们预览camera并不想直接输出camera捕获的图像而是想二次加工图像后再预览比如美颜、滤镜等等。这是我们可以用surfacetexture方案解决。部分代码:surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void sur
2017-01-22 14:21:36 4363 2
原创 Android 进程间通信binder使用心得
在android5.0之后不再支持隐式意图开启service,需指明service所在app的包名和类名全路径。以下是应用A,开启应用B中service的伪代码:Intent intent = new Intent();//ComponentName中第一个参数为app的包名,第二个为service的完整类名//从下面代码可知MyServiceDemo在包名为cn.com.fo
2017-01-20 16:59:16 357
原创 java jni使用教程
本教程适用于pc机调用c\c++接口本教程c\c++程序用vs2015编写并编译生成dll动态库文件供java调用开发步骤1、eclipse 创建java工程,声明native方法 用javah生成jni标准头文件。2、vs 创建MFC DLL工程3、将第一步生成的.h文件放到vs工程的header Files目录中,在source Files中即可编写c\c++程序了
2016-12-30 11:38:57 362
原创 jni 新线程使用JNIEnv *env
众所周知JNIEnv env 是一个线程对应一个env,线程间不可以共享同一个env变量。那么如何在新创建的线程中使用env变量呢?1、JavaVM *g_vm; env->GetJavaVM(&g_vm); //来获取JavaVM指针.获取了这个指针后,将该JavaVM保存起来。(env是当前线程中对应的变量)2、在新线程中调用
2016-10-28 15:10:38 3309
原创 Android 打jar包
我们开发的android应用有时会导出些接口供其他应用使用,通常我们会打jar包给新工程使用,在打jar包的时候需要注意一个很重要的事项:如果我们对外开放的是某个activity并且用到了资源文件(res目录下的图片或其他资源),此时不能通过R.layout.xxx R.drawable.xx.png方式,即便是打jar包的时候将res目录勾选上了也会报错的,因为jar包中res目录下的
2016-09-21 16:20:07 325
原创 Eclipse配置jni头文件生成工具
在我一篇博文中提到了如何命令行生成jni的头文件 命令行生成android jni头文件方法,这种方法不是很便利,下面我来介绍一种简便的方法1、’打开eclipse的菜单工具栏2、点击下拉菜单的External Tools Configurations3、在上图左侧视图中的Program项中新增createJniH(名字自己定义,这是我自己起的工具名称) 在
2016-09-02 10:26:07 428
原创 qt槽不能执行耗时操作?
近几日做了一个qt的项目,里面用到了好多信号和槽,其中有关于视频预览的信号,及从摄像头中取出一帧图像发送给相应的槽进行处理;还有好多其他的信号和槽,有一个里面有一些复杂逻辑耗时一秒多,导致视频预览变卡,我不清楚设计信号和槽时可以加入什么属性能不影响其他的信号发送和处理,我目前是把耗时操作移动了线程中处理,解决了目前的问题。
2016-08-03 09:33:23 1602
原创 android studio aidl用法详解
在我们android开发中经常会遇到进程间通信,android提供了一种解决方案就是aidl,下面我来介绍一下如何在android studio中实现aidl。1、在android studio中创建一个工程2、创建两个module 比如我的: aidlserver 和 aidlclient这样就能实现两个进程了。3、在aidlserver中的创建aidl文件见下图
2016-07-07 09:45:59 8742 2
原创 如何在手机有menu的物理按键的情况下,还将菜单显示在标题栏?
在添加菜单前,调用一下如下代码,大部分都能成功try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if (menuKe
2016-07-01 15:16:53 602
原创 android ndk开发之代码提示
eclipse在做android ndk开发时经常碰到代码无提示,虽然已经装上了c/c++插件但是还是不提示。理论上应该是打开c文件后应该处于c环境下但是结果却不是。所以自己新建了一个c++工程,将jni代码放在了新建的工程下,记住要将整个jni目录拷贝到新建的c++工程下,因为ndk-build编译时会找jni目录。此时打开c文件后还是找不到头文件,需要配置一下。右键工程--》prope
2016-05-26 15:21:58 2678
原创 android 屏幕适配
在项目开发中,我们经常会和图片打交道,为了是提高用户体验度。可是面对浩如烟海的机型我们如何去做适配呢?美工需要提供几套图呢?一般我们在项目开发中,美工不会做很多套图出来,因为这样我们的安装包就会变大,好多用户不乐意。那怎么办呢?美工一般是基于720p(在友盟统计可以看到,这个分辨率的手机占绝大多数)做出一套图来,我们开发人员应该放到drawable-xhdpi中,这样imageview宽高
2016-04-07 16:25:26 388
原创 android jni问题之JNI WARNING: threadid=1 using JNI after critical get (GetObjectClass)
搞了半天终于知道原因了,jni项目的c++代码中使用了env->GetPrimitiveArrayCritical(imgSrc, 0);方法,那么在这句之后就不能再调用env相关的其他接口了,调用后就会闪退,当然google后发现可能是特殊的设备造成的,其中的原因不清楚需要看底层的源码,不过既然碰到了以后就慎用了。
2016-03-30 18:02:43 1742
原创 android studio ndk工程开发及调试指南
注:Android Studio 版本>=1.4.1(支持 debug ndk)1、打开android studio创建一个空项目 包名自定义。2、创建一个andorid native接口类,在类中声明native接口,(例如:public static native String getStringFromC())3、打开终端android studio的T
2016-03-15 17:20:12 849
原创 android 之自定义属性1
有时候项目中我们需要自定义viewgroup时,就会有加入自定义属性的要求此时我们按着常规的方法就能成功;但是这不能满足我们的要求,我们还想使用系统中定义好的属性,例如:android:layout_gravity 等,那我们的自定义属性中可以拿来直接使用吗?答案是可以的,你可以这样声明 ... 布局文件中就
2016-02-29 11:11:04 333
原创 android remount失败
有时候我们想push一些文件到系统目录下可是执行adb push时失败,log显示是文件系统是read-only的我们想拥有读写权限就需要adb remount了。但是执行时也是失败解决方法一、root 手机后,执行adb remount解决方法二、执行adb disable-verity (某些版本的adb才好使) 成功后adb r
2016-02-17 11:03:44 1215
原创 设置浏览器地址栏输入*.html也可以访问jsp
在tomcat的conf文件夹下的web.xml中有 jsp *.jsp jsp *.jspx 加上下面两个就可以把.htm,.html文件当做jsp文件处理 jsp *.htm jsp
2015-11-30 15:30:42 928
原创 设置android studio打开时进入欢迎界面
注:我的android studio的版本是1.1.01、打开菜单栏file项2、在IDE Settings中找到General项3、将Reopen last project on startup前的对勾去掉4、保存退出。以上完成后android studio启动时会联网出现好长时间的等待。解决方法如下1 进入刚安装的Android Studio
2015-11-24 10:15:41 2142
原创 javaee ssh框架下mysql中文乱码解决办法
1、修改my.ini文件(数据库安装根目录),改为utf8(红色箭头部分)2、手动创建数据库 create database db_test character set 'utf8';3、jdbc.properties文件的jdbcUrl设置为 jdbcUrl=jdbc\:mysql\:
2015-11-19 15:33:26 738
原创 jni c调用java的方法签名生成方法
进入到项目的bin目录下的classes目录下 执行命令 javap -s -p 类名字(类的全路径: 包名加类名)可以在cmd窗口里看到
2015-11-09 18:24:41 522
原创 java ExecutorService的重新认识
ExecutorService executorService = Executors.newFixedThreadPool(number)以前以为上面这句代码控制了executorService的开启的最大线程数,那我就可以毫无顾忌的submit线程了,直到做一个项目老是报内存溢出的错误。百思不得其解。层层排除,定位到submit的太豪放了,正好要开启的线程中new了好多大的对象,这样每
2015-11-03 17:58:06 452
原创 java函数参数是按值传递的
java的参数如果是个对象,当调用此方法时传入的是对象的引用值。以下是伪代码:Object obj = null;function A(Object obj){ obj_ref2 = obj_ref1; // 按值传入引用obj_ref1,得到obj_ref1的副本obj_ref2 obj = new Object(); //此时只是副本指向了新的对象
2015-09-22 11:27:32 243
原创 android jni 有感一
今天做jni的开发无意中碰到了一个诡异的问题,运行总是崩溃log显示找不到方法,不可能啊一直以后都是固定的流程开发。找了半天发现是函数名首字母给大写了,试着改成小写后运行ok了。。。。。。。。。。。。。。。。ss
2015-09-10 12:30:11 234
转载 values语言支持文件命名格式
在res目錄下建立不同名稱的values文件來調用不同的語言包Values文件匯總如下:中文(中國):values-zh-rCN中文(台灣):values-zh-rTW中文(香港):values-zh-rHK英語(美國):values-en-rUS英語(英國):values-en-rGB英文(澳大利亞):values-en-rAU英文(加拿大):values-en-rC
2015-09-08 17:29:42 449
原创 win7下vs2010 + opencv的配置
1、opencv的官网下载安装exe文件2、安装opencv超级简单跟解压缩差不多3、安装vs20104、开始在vs中配置opencv 4、1: 创建一个c++工程 4、2: 右击vs界面左侧解决方案资源管理器的项目(你创建的工程名字)选择属性进入 4、3: 找到c/c++菜单下的常规项配置附加包含目录(添加 “你的opencv根目
2015-09-02 14:39:27 264
原创 命令行生成android jni头文件方法
1、cd /d "projectdir"/bin/classes(projectdir: 你的android工程的根目录)2、javah -jni packagename.classname(packagename: 你的native方法所在的类的包名比如我的是cn.com.jni ...
2015-08-12 17:39:14 512
原创 android studio (Already disposed: Module: 'XXXX')
明明已经编译过了,可是运行老是失败,总是弹出一个提示对话框显示Already disposed: Module: 'XXXX'.解决办法重启android studio哦了,一切尽在不言中。
2015-05-07 15:13:59 3163
原创 This Android SDK requires Android Developer Toolkit version 23.0.0 or above. Current version is 22.
adt遇到这种报错:方案一:更新adt方案二:将adt-bundle安装目录\sdk\tools\lib\plugin.prop文件的内容变为“# begin plugin.propplugin.version=X.X.X# (比如我的是22.6.2设置好后重启eclipse,一路畅通)
2015-05-04 14:22:05 399
原创 android studio 1.0 Library projects cannot set applicationId. applicationId is set to '' in default
打开.gradle文件看到如下信息defaultConfig { applicationId "com.super.app" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" }将红色一行干掉!!
2015-04-28 15:36:47 1335
转载 eclipse常用快捷键
经常使用eclipse进行开发,不掌握快捷键步行啊,在此整理了一些快捷键,大家要灵活运用啊。。。(注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊。。。)Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+Shift+O 自动导入所需要的包(这个用的次数也相当多)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
2015-04-18 10:39:25 205
转载 Java三大特性
封装:首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。1.概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外
2015-04-07 09:48:04 296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人