Android移动开发
番茄发烧了
一介匹夫 随心而去
展开
-
FFMpeg压缩Android摄像头数据写成H264格式文件
Android端获取摄像头数据有好几种。我使用的是onPreviewFrame(byte data[],Camera camera);这个回调函数遇到的问题:问题1、打印了下data[]的长度,是3110400。我开始想这个数是怎么来的。网上找了一圈没结果。我琢磨了一会得出了结论。手机摄像头像素是1920*1080=20736003110400/2073600=1.5,这个1.5就原创 2016-01-27 01:05:00 · 6903 阅读 · 8 评论 -
【Android】机房座位预约系统Android端
这周要去武汉开会,下周项目就得用上。所以。。比较紧。加上导师不懂Android开发,只要开会就改需求,/(ㄒoㄒ)/~~反正他说先让学校用着,移动端和服务器的开发就给了两周时间。所以功能实现的比较简单,但代码做的比较容易扩展,都留了接口,后面更新起来也好做一些。通过这个工程,对Struts2的拦截器有了一些新体会。随着项目变大代码量变多,自然而然就会想起用一些设计模式了。不然代码根本没办法看。 整原创 2016-09-18 13:31:23 · 4612 阅读 · 23 评论 -
【Android】仿今日头条简单的刷新效果
点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据。有四个选项卡。前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里。做着做着遇到很多问题,都解决了。这个效果感觉还不错,整理一下。MainActivitypackage com.example.fragmentmytest;import android.content.DialogInterface;impor原创 2016-09-14 21:18:55 · 3445 阅读 · 0 评论 -
【CNTK/OpenCV/Android】Server+Android+CNN实现移动端图像识别系统
使用CNTK训练的网络,和OpenCV提供的图片处理支持。在Android平台将图片上传服务器并返回图片种类。留自己备忘。转载请注明出处->http://blog.csdn.net/bless2015首先是第一个BUG:用NDK太麻烦,所以讲CNTK和OpenCV接口直接编译好了一个exe,用Java Runtime直接调用。但是除了一个问题,花了半天时间。原因是CNTK函数返回了很多日志信息,原创 2016-08-29 15:47:40 · 4771 阅读 · 1 评论 -
Handler Looper Messagequeue Thread关系
1、每个Thread都要有一个Looper,主线程在启动时,系统自己添加了,所以不用手动Looper.prepare再添加。而子线程没有默认的Looper,要手动调Looper.prepare,再开线程,再Looper.loop。不断的从Messagequeue 里取message,取到了就发给handler,调用handlerMessage处理。2、Handler可以理解有两个方原创 2016-06-03 09:14:19 · 330 阅读 · 0 评论 -
【Android】图片切割
调用系统相机或者相册,之后调用系统的剪切,并把剪切后的图片保存到SD卡。 protected void startCamera(DialogInterface dialog) { dialog.dismiss(); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra("camera原创 2016-04-19 22:41:00 · 1052 阅读 · 0 评论 -
编写so库,并在其他工程里使用。
so库是linux下的动态链接库,相当于windows下的dll。后缀一般是".so"记录下整个流程。linux下编译代码都需要一个make文件来向编译器解释说明一些内容。所以需要些两个文件,一个是Android.mk(make文件),一个是c/c++源码文件。源码文件的方法定义名称是受ndk约束的,名称是固定格式的。很长很难记,所以用到一个头文件(就是方法名)生成工具java原创 2016-01-03 17:55:18 · 2992 阅读 · 0 评论 -
FFMpeg调通PC端查看Android摄像头数据
只是调通,但是包括显示效果和BUG都还不少。还未做优化,刚测试,播出来的太卡,而且大概只能播十秒钟左右(不知道这个是不是我RTCP服务器设置了缓存限制)。怕自己忘了思路,所以赶紧总结一下,为明天做准备。没有设置AVPacket的时间戳,可能是影响的原因。在昨天的基础上,用av_write_frame();把之前得到的h264压缩数据发出去。虽然好不容易在PC端可以看到手机的图像,但原创 2016-01-29 01:57:35 · 1399 阅读 · 1 评论 -
调用ffmpeg中的avcodec_version()打印版本号
终于把这个调通,接下来就要弄视频帧压缩了。需要ffmpeg源码,编译好的libffmpeg.so文件1、新建android工程,在目录下新建jni文件2、在MainActivity中写 static { System.loadLibrary("hello-jni"); System.loadLibrary("ffmpeg"); }和原创 2015-12-24 00:53:33 · 7909 阅读 · 8 评论 -
android wifi信号检测
ps:范围0-100,数值越大信号越好。原理:通过WifiManager获取系统wifi强度数值。操作:点击获取wifi细信息,开始循环任务获取数值。最大最小表明在本次测试过程中的wifi信号范围,来观察信号强度和是否稳定。点击保存,在下面会增加一条记录,记录本次的区间。然后重新获取可以是另一点wifi信号强度的区间。因为最近要开始做路由器开发,为测试newifi智能路由器的信号强原创 2015-10-04 11:28:09 · 1364 阅读 · 0 评论 -
[android]DES/3DES/AES加密方式
DES 支持8位加密解密,3Des支持24位,Aes支持32位。3Des是Des算法做三次。位数的单位是字节byte,不是bits。3Des是把24位分成3组,第一组八位用来加密,第二组8位用于解密,第三组8位用于加密,所以,如果秘钥为123456781234567812345678(3组1-8),则相当于做了一次12345678的Des加密。例如:第一次用12345678秘钥对123进行加密原创 2015-07-01 15:01:38 · 2237 阅读 · 0 评论 -
【Android】三种加载布局资源的方式
1.View.inflate(Context,resource,viewGroup)2这个必须要传过来Context才能调用。 LayoutInflater inflater1 = getLayoutInflater(); View inflate = inflater1.inflate(R.layout.activity_main, null);3,这个是底层,只能在Activity中原创 2016-09-20 15:40:35 · 1638 阅读 · 1 评论 -
【BUG】C#服务器和Java(Android)端信息交互问题
之前做的机房预约系统,服务器是C#写的。结果在测试网络的时候一直服务器能接收到我(Android)发出的消息,但是接收不到服务器返回的。 在家搭的Java服务器,手机测试是同的。在学校机房用的C#写的客户端和C#服务交互也是可以通的。测试的时候就忽略了不同语言间的差异。客户端用xUtils框架,手写的HttpURLConnection都通不了。最后干脆纯用Socket也不行。 经过排查原因,发现原创 2016-09-20 20:17:54 · 648 阅读 · 0 评论 -
获取指定程序是否在运行
public static boolean getCurrentTask(Context context){ ActivityManager activityManager = (ActivityManagaer)context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskIn原创 2017-04-06 10:31:38 · 429 阅读 · 0 评论 -
android像素密度适配
public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale);}public static int px2dip(Cont原创 2017-04-04 11:57:16 · 292 阅读 · 0 评论 -
Activity启动模式
Standard点击一个activity就创建一个实例SingleTask保持应用开启后,只有一个Activity实例。常用的场景:HomeActivity(Home页)SingleTop如果要处理的activity已经处于栈顶,那么直接复用,场景:在Activity中又要启动当前Activity。比如详情页。SingleInstance系统级activity,比如锁屏。不论哪个应用启动了这个Act原创 2017-04-08 11:17:23 · 262 阅读 · 0 评论 -
多渠道打包脚本
apply plugin: ‘com.android.application’ apply plugin: ‘realm-android’ //依赖Realm数据库,插件化依赖android { compileSdkVersion 23 buildToolsVersion “23.0.2”defaultConfig { applicationId "com.youdu"转载 2017-04-08 10:37:08 · 448 阅读 · 0 评论 -
12月1日备课-Fragment+WebView展示详情页
用的cnblog的开放接口MainActivitypackage com.example.fragment2news;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;i原创 2016-12-01 00:02:57 · 688 阅读 · 2 评论 -
12月1日备课,下载图片,显示进度
package com.example.progressnotification;import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream;import org.apache.http.HttpEntity; import org.apache.http.HttpRe原创 2016-11-30 23:31:26 · 578 阅读 · 0 评论 -
11月17日备课 网络请求+新闻展示
MainActivitypackage com.example.xmlparser;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.ProtocolExcep原创 2016-11-16 18:54:53 · 552 阅读 · 0 评论 -
【Android H5移动开发】 MUI下拉刷新
index.html<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />原创 2016-09-28 10:37:18 · 4401 阅读 · 0 评论 -
【Android H5移动开发】MUI框架的试用
MUI是移动设备上的H5框架,可以用来写Android和IOS上的app。 下载HBuilder 文件->新建->移动App 选择MUI项目 建立一个包含子界面的程序<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=devic原创 2016-09-27 18:14:47 · 2473 阅读 · 0 评论 -
【Android】Android心跳包详解
在做IM通信时,都会遇到这样一个概念:心跳包。又是一个比较抽象的概念,那么心跳包到底是什么呢? 之前做的机房预定系统里,使用的Socket和服务器通信。长连接测试服务器: Socket基本上都这么一个流程。public class Test { private static final int PORT = 1234; private static final int BUFFE原创 2016-09-27 14:04:08 · 7376 阅读 · 1 评论 -
[android]完美解决ListView加载网络图片乱跳问题
布局文件:只有一个ListView<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:lay原创 2015-06-10 18:33:31 · 2732 阅读 · 4 评论 -
[android] Handler机制
Handler概念主要用于异步消息的处理,它的设计通常用来处理相对耗时比较长的操作。Android的单线程机制,只有主线程可以对UI(界面)进行更新,为了Android平台来说UI控件都没有设计成为线程安全类型,所以需要引入一些同步的机制来使其刷新。由于Handler是运行在主线程中(UI线程中), 而且它的设计可以使它与子线程通过Message对象来传递数据, 这个时候,Han原创 2015-05-15 20:59:34 · 517 阅读 · 0 评论 -
[android]清单文件中MAIN与LAUNCHER的区别
MAIN 和 LAUNCHER,之前一直不注意这两个有区别,写程序的时候都放到一个filter中,前两天面试问到了,总结一下:MAIN指定了程序入口地址。LAUNCHER是程序在手机桌面上的图标。如果只设置了MAIN,没有设置LAUNCHER,则程序可以被安装到手机,但是在桌面看不到APP的图标,所以也就无法启动APP。如果只设置了LAUNCHER,没有设置MAIN,则程序不知原创 2015-05-25 12:27:43 · 2662 阅读 · 0 评论 -
[android]Android项目一般开发流程
一 应用规划: ※确定功能。 ※必须的界面及界面跳转的流程。 ※需要的数据及数据的来源及格式。 ※是否需要服务端支持。 ※是否需要本地数据库支持。 ※是否需要特殊权限。 ※是否需要后台服务。 二 架构设计: ※分层。 ※网络连接。 ※数据处理-xml、domain,数原创 2015-06-16 13:17:25 · 751 阅读 · 0 评论 -
[android]今日没记住
5月12日SearchView(SearchView) findViewById(R.id.sv).setOnQueryTextListener(new OnQueryTextListener() {//发起搜索的时候会调用该方法@Overridepublic boolean onQueryTextSubmit(String query) {return false;原创 2015-05-12 21:05:34 · 416 阅读 · 0 评论 -
[android] SoundPool详解
今天做一个小Demo用到了SoundPool,总结一下。MediaPlayer缺点:不能重叠播放音乐,封装程度比较高,所以加载起来会比较慢。SoundPool简介Android系统提供了另一种播放音效的类。用来加载多个音效,短促音效和多个短促音效,可自行设置声音品质,音量,重复和优先级。在一定场合还是很好用的。属于android.media包下,继承自Object。原创 2015-05-26 17:33:54 · 1789 阅读 · 0 评论 -
[android]Broadcast与BroadcastReceiver
Broadcast为什么需要广播(broadcast) 广播机制,本质上它就是一种组件间的通信方式。系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。在安卓中,一些操作完成后,会自动发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。 广播的机制,不管对方有没有接收到,有点类似UDP原理,原创 2015-05-19 20:40:43 · 529 阅读 · 0 评论 -
android 自定义view,绘制与onTouchEvent事件(一)
绘制构造方法自定义view需要继承View类,重写两个构造方法 //用在代码new该view对象,初始化 public MyView(Context context) { super(context); init(); } //一般添加构造---》view放进布局,系统实例化 public MyView(Cont原创 2015-05-26 20:54:21 · 8018 阅读 · 1 评论 -
android 自定义view——自定义属性(二)
Values下创建attrs.xml放要定义的属性和值类型名字+值类型,表面declare-styleable是android系统的,但eclipse不会提示。 布局文件中自定义命名空间把最后的android改成自定义VIew的包名<RelativeLayout xmlns原创 2015-05-27 20:11:49 · 584 阅读 · 0 评论 -
[android] 瀑布流布局——分页加载(详细代码)
瀑布流 分页加载 自定义ScrollView 监听事件 回调接口原创 2015-05-27 18:26:53 · 3090 阅读 · 0 评论 -
[Android]"commit already called"错误解决
在做一个酒店的项目,用fragment切换界面遇到一个错误:commit already called.在同一layout里replace不同的Fragment,需要执行多次transaction.commit();每个事务只能执行一次。所以会出现,第一次切换界面没问题,第二次就会报commit already called。解决办法是,只将manager声明成全局对象,final Fragm原创 2015-05-08 09:50:30 · 7101 阅读 · 0 评论 -
[android]自定义ContentProvider
一、ContentProvider概念ContentProvider提供了在android系统内共享数据的接口,可以在不同app之间进行数据共享。例如联系人,短信记录,通话记录都实现了ContentProvider接口,使其他APP可以访问到这些数据(必须获得权限)。当应用集成了ContentProvider类,通过重写其方法,即可使该应用内的数据公开出去。ContentProvider共原创 2015-05-14 18:26:37 · 713 阅读 · 0 评论 -
欢迎使用CSD横竖屏切换问题占位
android横竖屏切换原创 2015-04-29 00:09:29 · 470 阅读 · 0 评论 -
[android]代码打包混淆
一、项目混淆过程中注意事项:由于我的sdk版本较高,因此新建android项目下只有proguard-project.txt和project.properties这两个文件夹,而网上一些所谓混淆的方法我均试验了下,都有或多或少的问题,以下是一些混淆总结:1、如果你的项目没有其他第三方包的话,那么进行混淆很简单,只需要将project.properties文件夹下面的注释解开就行,一点区别在转载 2015-06-16 13:14:21 · 1076 阅读 · 0 评论 -
[android]应用程序国际化
Android 应用程序的国际化与本地化机制是比较完善的,操作起来也比较方便。我们可以把要用到的所有字符串放在res\values目录下的strings.xml 文件中,在程序中以R.string.xx的形式来引用它们。把其他语言的字符串放在形如res\values-zh-rCN、res\values- zh-rTW目录下的strings.xml文件中,应用程序会根据手机语言的设置情况自动选择转载 2015-06-16 13:47:11 · 716 阅读 · 0 评论 -
[android]Xutils详细介绍
什么是XutilsxUtils 包含了很多实用的android工具,xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响.xUitls最低兼容android 2.2 (api level 8)xUtils下载和引入类库下载地址原创 2015-06-10 17:07:32 · 1762 阅读 · 0 评论 -
[android]APP启动界面——SplashActivity
概念当前应用程序在启动的时候都会有一个展示自己公司LOGO和APP名字的界面,这个界面成为SplashActivity。布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layo原创 2015-06-10 20:55:04 · 3506 阅读 · 0 评论