Android
陈纪建
关注行业动态,找出最适合自己的发展道路
展开
-
Android之Activity
Android之Activity【Activity】 一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。 一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,转载 2017-05-27 09:00:01 · 237 阅读 · 0 评论 -
NDK在自己的SO中调用第三方SO
拷贝第三方的SO及其头文件在Android.mk中申明第三方编译模块在Android.mk的自己编译模块中包含第三方编译模块在自己的代码中调用第三方头文件Android.mk配置说明LOCAL_PATH := $(call my-dir)#第三方的编译模块include $(CLEAR_VARS)LOCAL_MODULE := _3rdsdkLOCAL_SRC_FILE转载 2017-06-07 17:17:18 · 865 阅读 · 0 评论 -
Ubuntu 下用NDK编译移植 ffmpeg 2.0 (配置最新版x264) 到android平台
将x264配置到ffmpeg中需要先编译x264,生成静态库或动态库。因为264的静态库本身不大(我编译完成后是1.1M)且考虑到平台移植问题,这里选择的是编译生成静态库。准备,新建工作空间 (1)创建总目录FFmpeg-Androideg: mkdir workspace --> cd workspace --> mkdir FFmpeg-Android --转载 2017-06-08 11:30:39 · 519 阅读 · 0 评论 -
Ubuntu下搭建 eclipse+NDK for android JNI 的开发环境
一、准备安装包1、去官网下载adt-bundle-Linux 和 Android-ndk,我的环境是Ubuntu64位,所以我下载的版本是:(1)adt-bundle-linux-x86_64-20131030.zip(2)android-ndk-r9b-linux-x86_64 .tar.bz2下载完后解压,用命令行进入,执行 " ./eclips转载 2017-06-08 11:33:32 · 853 阅读 · 0 评论 -
Intent详解
【正文】Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。一、什么是Intent1、Intent的概念:Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之转载 2017-06-09 11:08:25 · 655 阅读 · 0 评论 -
OpenGL 学习
http://blog.csdn.net/jackie03/article/details/7303097转载 2017-06-09 14:18:57 · 220 阅读 · 0 评论 -
关于ndk开发使用jni回掉java方法更新UI的问题
重新整理,原理:应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发。耗时的操作,放在一个子线程中,如果子线程涉及到UI更新,那就要用到handler,Android主线程是线程不安全的, 也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。Handler运行在主线程中(UI线程中)转载 2017-06-21 15:55:56 · 730 阅读 · 0 评论 -
FFmpeg视频播放-SurfaceView
之前已经把FFmpeg集成到项目里面了,剩下的就是做开发了,做过安卓视频播放的都应该知道在播放的时候都有用到SurfaceView,这里我们也采用这种方式。一、定义Java层的调用接口我们需要知道播放视频的网络地址或者是本地路径,并且希望这个地址是可以修改的,所以我们需要有一个参数去接收这个地址。和系统一样,我们也需要传递一个Surface,在Jni中没有Surface这个类型,所转载 2017-06-09 17:39:14 · 461 阅读 · 0 评论 -
Android下的JNI创建多线程的方法
一、概述 JNI编程和Linux上的C/C++编程还是挺相似的,每次java调用JNI中的函数时都会传入有关JVM的一些参数(如JNIEnv,jobject),每次JNI回调java中的方法时都要通过JVM的有关参数来实现,当在JNI中涉及到多线程的话还是有一些不一样的地方,就是要在子线程函数里使用AttachCurrentThread()和DetachCurrentThread转载 2017-06-13 09:03:15 · 2121 阅读 · 0 评论 -
Android学习笔记之AndroidManifest.xml文件解析
一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Service转载 2017-06-13 17:01:23 · 383 阅读 · 0 评论 -
安卓学习系列
http://blog.csdn.net/jianghuiquan/article/details/8298687原创 2017-06-14 16:03:19 · 181 阅读 · 0 评论 -
Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
转载请包含网址:http://blog.csdn.net/pathuang68/article/details/7351317一、SurfaceSurface就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is ...转载 2018-02-28 10:41:48 · 12773 阅读 · 5 评论 -
Ubuntu系统下adb devices 不能显示手机设备
1. 查看usb设备,命令:lsusb结果如下:Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 001 Device 001: ID 1d...转载 2018-02-28 12:08:23 · 789 阅读 · 0 评论 -
JNI 推荐博客
http://blog.csdn.net/qq_32583189/article/details/53172316转载 2018-03-02 14:40:19 · 113 阅读 · 0 评论 -
Android-SurfaceView与SurfaceHolder对象
调试Media播放时,不时用到SurfaceView与SurfaceHolder对象,写case测试及实际运行效果,基本上搞清楚这两个对象的用法及区别1、SurfaceView public class SurfaceView extends ViewSurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surfa转载 2017-06-02 15:00:22 · 236 阅读 · 0 评论 -
TextureView+SurfaceTexture+OpenGL ES来播放视频(一)
http://www.jianshu.com/p/d3d3186eefcb转载 2017-06-02 14:35:18 · 777 阅读 · 0 评论 -
最简单的Android项目(NDK命令行编译)
Android的NDK编程需要下载NDK编译环境,可以从官网下载window64位版,然后解压到任意目录即可。NDK的实现其实是利用里Java的jni方法,所以前期的步骤可以参考jni的实现方法,只是编译时可以利用NDK工具来进行。首先将Java源程序写好,例如: 1 package test.android; 2 3 import android.app.Act转载 2017-06-02 10:04:44 · 1969 阅读 · 0 评论 -
Android NDK入门
为何要用到NDK?概括来说主要分为以下几种情况:1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。下面就介绍下Android NDK的入门学习过程:入门的最好办法就是学转载 2017-05-27 10:20:50 · 325 阅读 · 0 评论 -
Java通过JNI调用C++程序
JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序。很多时候,某些功能用Java无法实现,比如说涉及到底层驱动的一些功能,这时候我们就可以利用JNI来调用C或者C++程序来实现,这就是JNI的强大之处。但是JNI也有它的缺点,使用java与本地已编译的代码交互,通常会丧失平台可移植性。 下面是一个转载 2017-05-27 17:04:10 · 254 阅读 · 0 评论 -
重启ADB
adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当然,重启Eclipse可能会解决问题。但那比较麻烦。如果想手工关闭adb服务,可以使用下面的命令。 adb kill-server 在关闭adb服务后,要使用如下的命令启动adb服务。 adb start-s转载 2017-05-31 10:04:03 · 901 阅读 · 0 评论 -
JNI 实战全面解析
项目决定移植一款C++开源项目到Android平台,开始对JNI深入研究。JNI是什么?JNI(Java Native Interface)意为Java本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制。NDK是什么?Android NDK(Native Development Kit )是一套工具集合,允许你用像C/转载 2017-05-31 11:04:50 · 377 阅读 · 0 评论 -
Android程序的执行流程分析
10.3 Android程序的执行流程分析经过前面对Android项目目录结构的介绍以及相关文件的讲解,我们对许多细节已经有所了解,只是Android程序是如何执行的呢?下面进行总结。发布程序到手机上之后,当双击"抽屉"里该应用的图标时,系统会将这个事件包装成一个Intent,该Intent包含两个参数,代码如下:{action :"android.intent.acti转载 2017-05-31 14:40:27 · 1203 阅读 · 0 评论 -
OpenSL ES 进行音频解码播放
?123456789101112131415161718192021222324252627282930313233转载 2017-05-31 16:45:06 · 2164 阅读 · 0 评论 -
Android的声音编程--使用OpenSL ES Audio
OpenSL ES? 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。Android NDK 给出了使用OpenSL ES来实现native-audio的例子。本文介绍了如何使用OpenSL ES在Android中进行声音编程。从OpenSL ES的编程编译链接设置到创建声音引擎、创建声音播放器、设置播放缓冲等具体步骤。编译和链接设置使用OpenSL E转载 2017-05-31 18:13:58 · 5343 阅读 · 1 评论 -
JNI中的jclass和jobject的区别
jclass和jobject的迷惑第一次使用JNI,实例引用(jobject)和类引用(jclass)让人觉得很困惑。实例引用与一个数组和java.lang.Object类或它的子类的实例对应。类引用与java.lang.Class实例对应,它代表着类的类型。一个操作如GetFieldID,需要参数jclass,是一个类操作,因为它从一个类中获得field的描述。与此相反,GetInt转载 2017-06-01 09:38:52 · 7894 阅读 · 0 评论 -
Android学习一、MediaPlayer播放音频
想要使用MediaPlayer播放音频和视频,首先必须了解MediaPlayer的状态问题。下面是Google提供的MediaPlayer的状态图,基本上只要明白了,在MediaPlayer的状态上。就不会出问题了。还有什么不明白的,可以详细的看看Google提供的API。要想用MediaPlayer所写的的音频播放程序健壮的话,不仅需要了解MediaPlaye转载 2017-06-01 11:45:25 · 382 阅读 · 0 评论 -
Android学习二、MediaPlayer播放视频
MediaPlayer主要是用来播放音频的,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放时候的图像输出。有几点要注意的:1、MediaPlayer管理播放的,所以状态问题一定不能忽略的。2、SurfaceHolder.setType(int)方法虽然被标记为deprecate的,但是最好还是对SurfaceView进行这转载 2017-06-01 11:56:27 · 363 阅读 · 0 评论 -
Android学习三、SurfaceView的学习
想要学习SurfaceView,必须了解SurfaceView、Surface、SurfaceHolder。一、Surface下面是Google提供的关于Surface的API的概述:Handle onto a raw buffer that is being managed by the screen compositor.直接从raw缓冲区中读取数据到屏幕。转载 2017-06-01 11:58:57 · 295 阅读 · 0 评论 -
解决Unbantu eclipse 菜单栏目消失的问题
1. 新建一个eclipse.sh文件,加入如下内容,下面的路径是ecipse的路径export UBUNTU_MENUPROXY=0/usr/bin/eclipse //这一行是安装路径一定不能错2. 在终端 sh ./eclipse.sh原创 2017-06-16 16:40:23 · 631 阅读 · 0 评论 -
Android MediaPlayer API 大全
Android MediaPlayer API 大全1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种状态之间是MediaPlayer对象的生命周期。1.1) 在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之转载 2017-06-02 09:44:39 · 903 阅读 · 0 评论 -
《android多媒体api》之摄像头camera采集原始视频数据
《android多媒体api》系列是整合梳理android开发中经常用到的媒体相关api;多媒体开发主要内容有音频、视频录制播放、摄像头操作、录制操作、流媒体、直播、推流、拉流等方面;最近几年移动直播和视频应用发展犹如雨后春笋一般直插云霄,呃。。好吧这段比喻可以不用看了!!,反正行业兴起肯定催生了很多多媒体相关应用开发程序员。那么怎样才能成为多媒体开发程序员,首先必须要熟练使用和了解android...转载 2018-09-10 09:52:38 · 967 阅读 · 0 评论