03 2019 档案

摘要:出处:lanmeng_smile-https://blog.csdn.net/lanmeng_smile/article/details/46724129 一、基本概念 1、相对路径-顾名思义,相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法。 2、绝对路径-绝对路径就是你的主页上的 阅读全文
posted @ 2019-03-29 15:27 brave-sailor 阅读(353) 评论(0) 推荐(0) 编辑
摘要:Linux网络编程 1、 套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。 常用的TCP/IP协议的3种套接字类型如下所示。 (1)流套接字(SOCK_STREAM): 流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了... 阅读全文
posted @ 2019-03-28 17:00 brave-sailor 阅读(2538) 评论(0) 推荐(0) 编辑
摘要:1. 哪些需要手动释放? 不要手动释放(基本类型): jint , jlong , jchar 需要手动释放(引用类型,数组家族): jstring,jobject ,jobjectArray,jintArray ,jclass ,jmethodID 2. 释放方法 2.1 jstring & char * // 创建 jstring 和 char* jstring j... 阅读全文
posted @ 2019-03-28 15:08 brave-sailor 阅读(7532) 评论(0) 推荐(0) 编辑
摘要:本文学习如何在C代码中创建Java对象和对象数组,前面我们学习了C代码中访问Java对象的属性和方法,其实在创建对象时本质上也就是调用构造函数,因此本文知识学习起来也很轻松。有了前面学习数组创建的方法后,C代码创建对象数组同样很容易,下面开始学习吧~ 1. C代码创建Java对象 创建Java对象本 阅读全文
posted @ 2019-03-27 16:42 brave-sailor 阅读(628) 评论(0) 推荐(0) 编辑
摘要:相对于NDK来说SDK里面有更多API可以调用,有时候我们在做NDK开发的时候,需要在JNI直接Java中的方法和变量,比如callback,系统信息等.... 如何在JNI中调用Java方法呢?就需要先了解FindClass和GetMethodID了。 FindClass和GetMethodID 阅读全文
posted @ 2019-03-27 16:37 brave-sailor 阅读(513) 评论(0) 推荐(0) 编辑
摘要:在前面的两篇文章中,介绍了 Android 通过 JNI 进行基础类型、字符串和数组的相关操作,并描述了 Java 和 Native 在类型和签名之间的转换关系。 有了之前那些基础,就可以实现 Java 和 Native 的相互调用了,在 Native 中去访问 Java 类的字段并调用相应的方法。 阅读全文
posted @ 2019-03-27 15:59 brave-sailor 阅读(449) 评论(0) 推荐(0) 编辑
摘要:NI开发有时需要Java从C/C++获取List对象,此篇主要讲解Java从C/C++获取List返回值; 1. 定义com.niubashaoye.simple.jni.StuInfo类 public class StuInfo { private int stuId; private String stuName; private ... 阅读全文
posted @ 2019-03-27 15:44 brave-sailor 阅读(1821) 评论(0) 推荐(1) 编辑
摘要:创建Java字符串数组 注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象 #include <Sample3.h> #include <string.h> #include <stdlib.h> #define ARRAY_LENGTH 5 JNIE 阅读全文
posted @ 2019-03-26 19:03 brave-sailor 阅读(1498) 评论(0) 推荐(0) 编辑
摘要:JNI 中有两种数组操作,基础数据类型数组和对象数组,JNI 对待基础数据类型数组和对象数组是不一样的。 基本数据类型数组 对于基本数据类型数组,JNI 都有和 Java 相对应的结构,在使用起来和基本数据类型的使用类似。 在 Android JNI 基础知识篇提到了 Java 数组类型对应的 JN 阅读全文
posted @ 2019-03-26 18:12 brave-sailor 阅读(4580) 评论(0) 推荐(0) 编辑
摘要:JNI初步入门后,在传递数据的时候,遇到一个需求:有多个数据需要在Java与C代码之间进行传递。如果都做为函数参数传入,则函数很长很难看,并且多个数据的返回也不好实现。所以想到了把数据打包后传递。这在C语言中就是结构体,在Java中就是类了。我们要做的工作就是,先确定要传递的数据,然后相应在C与Ja 阅读全文
posted @ 2019-03-26 17:10 brave-sailor 阅读(598) 评论(0) 推荐(0) 编辑
摘要:本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JN 阅读全文
posted @ 2019-03-26 17:09 brave-sailor 阅读(475) 评论(0) 推荐(0) 编辑
摘要:本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JN 阅读全文
posted @ 2019-03-26 16:32 brave-sailor 阅读(812) 评论(0) 推荐(1) 编辑
摘要:本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JN 阅读全文
posted @ 2019-03-26 16:30 brave-sailor 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JN 阅读全文
posted @ 2019-03-26 16:29 brave-sailor 阅读(498) 评论(0) 推荐(0) 编辑
摘要:本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JN 阅读全文
posted @ 2019-03-26 16:28 brave-sailor 阅读(332) 评论(0) 推荐(0) 编辑
摘要:引言:上篇 《Golang快速入门(不用急,但要快)》 我们大致过了一遍Go语言的基本语法,但在开始正式的项目创建前,有必要选择一个比较顺手的 IDE (编辑器),由于之前一直都是做Java相关的开发,自然而然地想着能否用一样的编辑器来进行开发,毕竟 Eclipse 还是挺强大的,但是它并不具备跨平 阅读全文
posted @ 2019-03-25 16:13 brave-sailor 阅读(1762) 评论(0) 推荐(0) 编辑
摘要:首先上图 这个报错主要是程序要启动没有入口的原因,package main下边的mian方法才是一个程序的入口。这就要 修改目录结构如下图修改并运行就可以了 阅读全文
posted @ 2019-03-25 16:13 brave-sailor 阅读(690) 评论(0) 推荐(0) 编辑
摘要:1、配置eclipse下配置GO语言的插件点击eclipse的“Help”菜单,找到“Install New Software…”菜单项。如下图: 点击“Install New Software…”菜单项,显示如下图:在“Work with”内输入:http://goclipse.github.io 阅读全文
posted @ 2019-03-25 14:39 brave-sailor 阅读(608) 评论(0) 推荐(0) 编辑
摘要:source .bash_profile //更新环境变量配置,使新设置的环境变量生效 vi .bash_profile //命令窗口输入 vi .bash_profile 打开环境变量配置文件,然后点i,回车可编辑,按esc,然后输入 :wq! 四个字符则退出并保存,最后输入source .bas 阅读全文
posted @ 2019-03-25 14:30 brave-sailor 阅读(579) 评论(0) 推荐(0) 编辑
摘要:0UL 表示 无符号长整型 0 1UL 表示 无符号长整型 1 如果不写UL后缀,系统默认为:int, 即,有符号整数。 1.数值常数有:整型常数、浮点常数;2.只有数值常数才有后缀说明;3.数值常数后缀不区分字母大小写。(1)整型常数的表示形式有:十进制形式、以0开头的八进制形式、以0x开头的十六 阅读全文
posted @ 2019-03-22 17:26 brave-sailor 阅读(2184) 评论(0) 推荐(0) 编辑
摘要:前言 如果你对移动端有所关注,那么你一定会听说过Flutter。得益于Google,Flutter一经推出便得受到了广泛关注。很多开发者跃跃欲试,国内部分大厂,诸如美团、闲鱼等团队已经开始了Flutter实践之旅了。笔者也是蹭了一波热度,学习了一下Flutter。Flutter虽然真香,但目前社区显 阅读全文
posted @ 2019-03-14 11:16 brave-sailor 阅读(1553) 评论(0) 推荐(0) 编辑
摘要:一、Container 是一个便利的Widget,它把通用的绘制、定位和Widget的大小结合了起来。 Container会先用padding填充子Widget和border之间的空白,然后添加其他的额外的约束constraints,最后会把剩余的都用margin来填充。 在绘制的过程中,会优先绘制 阅读全文
posted @ 2019-03-14 11:11 brave-sailor 阅读(425) 评论(0) 推荐(0) 编辑
摘要:先来看看准备界面: image.png 目标是修改图中红色实线框中的喜欢和不喜欢的五角星的修改,以及数字的修改。 在修改之前,有必要先了解一些相关的信息。 知识点 前面简单的提到过,有些Widget是Statful(有状态的),而其他的一些是Stateless(无状态的)。比如继承自Stateful 阅读全文
posted @ 2019-03-14 11:09 brave-sailor 阅读(325) 评论(0) 推荐(0) 编辑
摘要:Flutter的Widget采用的是现代化的React风格,该风格的设计灵感来源于React这么语言。最核心的理念是你可以使用Widget设计界面。Widget通过当前的state和注册信息来描述view应该长成什么样子的。当当前的状态发生了变化后,Widget会重新构建。 一、Hello Worl 阅读全文
posted @ 2019-03-14 11:09 brave-sailor 阅读(214) 评论(0) 推荐(0) 编辑
摘要:*、assets 当引用图片的时候,需要在pubspec.yaml的文件中的flutter下添加assets,类似于下面的样子: image.png 这里需要注意的是文件里的assets只要一个缩进即和flutter里的内容保持对齐,否则,会出问题。我遇到的是,没办法选择运行设备。 一、Layout 阅读全文
posted @ 2019-03-14 11:06 brave-sailor 阅读(390) 评论(0) 推荐(0) 编辑
摘要:记得flutter出来的时候,官方推荐的是使用IntelliJ IDEA,当时个人尝试了一下,比较麻烦,整个过程比较漫长。 进入2018年,再去看的时候,官方推荐使用Android Studio和VS code。我选择了使用Android Studio,整个过程相当惊喜,就是按钮那么一点,整个过程和 阅读全文
posted @ 2019-03-14 11:05 brave-sailor 阅读(217) 评论(0) 推荐(0) 编辑
摘要:概述App主题切换已经成为了一种流行的用户体验,丰富了应用整体UI视觉效果。例如,白天夜间模式切换。实现该功能的思想其实不难,就是将涉及主题的资源文件进行全局替换更新。说到这里,我想你肯定能联想到一种设计模式:观察者模式。多种观察对象(主题资源)来观察当前主题更新的行为(被观察对象),进行主题的更新 阅读全文
posted @ 2019-03-13 18:19 brave-sailor 阅读(1500) 评论(0) 推荐(0) 编辑
摘要:目录 文章 一开始 HOWTO文档 网站/博客 高级 视频 组件 演示 UI 材料设计 图片 地图 图表 导航 验证 文字和富文本 分析、流量统计 自动构建 风格样式 媒体 音频 视频 语音 存储 获利 模板 插件 服务 扫码器 蓝牙 / NFC / 信号灯 框架 Redux / ELM / 依赖注 阅读全文
posted @ 2019-03-13 11:19 brave-sailor 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:Automatically assigning platform iOS with version 9.0 on target 你的工程名称 because no platform was specified. Please specify a platform for this target in 阅读全文
posted @ 2019-03-12 13:53 brave-sailor 阅读(633) 评论(0) 推荐(0) 编辑
摘要:RIFF file format RIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构。RIFF文件所包含的数据类型由该文件的扩展名来标识 Chunk RIFF文件结构可以看作是树状结构,其基本构成 阅读全文
posted @ 2019-03-07 14:35 brave-sailor 阅读(3646) 评论(0) 推荐(2) 编辑
摘要:音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCodec工作原理 先上一幅图 MediaCodec工作原理.png 从图中可以看出MediaCodec 阅读全文
posted @ 2019-03-07 14:24 brave-sailor 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:音视频系列 什么是音视频的分离和合成 分离就是将视频1的声音和图像分别取出来 合成就是将视频1的图像和非视频1的声音组合成一个新的视频 如何进行音视频的分离和合成 安卓提供了两个API来帮助我们完成这个操作 MediaExtractor用于分离视频 MediaMuxer用于合成视频 下面我就来介绍一 阅读全文
posted @ 2019-03-07 14:23 brave-sailor 阅读(864) 评论(0) 推荐(0) 编辑
摘要:音视频系列 如何进行视频的采集和预览 视频的采集需要用到Camera这个API,谷歌在5.0引入了camrea2,为了适配所有的机型,我将分别介绍camera和camera2 预览可以使用SurfaceView和TextureView <uses-permission android:name="a 阅读全文
posted @ 2019-03-07 14:22 brave-sailor 阅读(618) 评论(0) 推荐(0) 编辑
摘要:音视频系列 什么是MediaRecorder MediaRecorder是安卓提供的一个用于音视频采集的类 在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频,通过Camera来采集视频 那么我们还为什么要介绍MediaRecorder了 前几篇文章介绍的音 阅读全文
posted @ 2019-03-07 14:22 brave-sailor 阅读(509) 评论(0) 推荐(0) 编辑
摘要:音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可以是其它的编码格式的数据 为什么要将音频存储wav格式 存储为该格式,音乐播放器可以通过读取wav头 阅读全文
posted @ 2019-03-07 14:21 brave-sailor 阅读(1670) 评论(0) 推荐(0) 编辑
摘要:音视频系列 音频采集AudioRecord AudioRecord与MediaRecorder区别 前者采集的是原始的音频数据,后者会对音频数据进行编码压缩并存储成文件 AudioRecord的使用 1.AudioRecord参数配置 public AudioRecord(int audioSour 阅读全文
posted @ 2019-03-07 14:19 brave-sailor 阅读(726) 评论(0) 推荐(0) 编辑
摘要:音视频系列 什么是音/视频 音频 声音的集合 视频 图片的集合,当一段连续的图片不断的出现在人眼前(至少要求1秒24帧,即一秒内连续出现24张图片),肉眼就会欺骗性的告诉大脑我们在看一个视频,而不是幻灯片。 编码和解码 编码,对原始音视频文件进行压缩。 解码,对压缩过的音视频文件解压缩,从而完成播放 阅读全文
posted @ 2019-03-07 14:18 brave-sailor 阅读(462) 评论(0) 推荐(0) 编辑
摘要:为什么要学习音视频 该技术比较火,如抖音,快手等APP 系统提供的MediaPlayer已经无法满足我们的需求,因为它不能支持所有的格式 对音视频比较感兴趣,最近开发了一款音乐App,但用的只是MediaPlayer,逼格不够高 想学习更多的技术 音乐播放器SofarMusic 该系列会持续更新,因 阅读全文
posted @ 2019-03-07 14:04 brave-sailor 阅读(230) 评论(0) 推荐(0) 编辑
摘要:常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。 format(String format, Object... args) 新字符串使用本 阅读全文
posted @ 2019-03-06 17:45 brave-sailor 阅读(270) 评论(0) 推荐(0) 编辑
摘要:1、使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它返回true,否则返回false。这种比较是区分大小写的。 2、为了执行忽略大小写的比较,可以调用equalsIgnoreCase( ... 阅读全文
posted @ 2019-03-04 18:09 brave-sailor 阅读(269) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示