自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android /system/priv-app/ 与 /system/app/目录的区别

Android4.4增加了/system/priv-app/目录,那么它与/system/app/目录有什么差别?测试: apk对Setting数据库进行读写,该操作需要signatureOrSystem权限Settings.Global.putInt(getContentResolver(), Settings.Global.WIFI_ON, 1); 1. 普通签名,将apk放在/system/priv-app/下面 测试结果:apk能够正常写入参数 2...

2020-07-10 16:11:22 4217

原创 flutter入门之封装一个加载控件Loading Dialog

日常开发中,我们经常会遇到一些耗时加载的应用场景,为了给用户提示,所以我们常常会在加载的时候展示一个加载框,给用户带来较好的体验。 今天我们的内容是封装一个简单易用的加载控件,首先来看一下效果。 由于这个内容比较简单,我们先看一下代码:dialog.dartimport 'package:flutter/cupertino.dart';import 'pa...

2019-06-19 12:53:02 10488 3

原创 flutter生成未签名的apk

flutter生成一个带有签名的apk如下:https://flutterchina.club/android-release/#app%E7%AD%BE%E5%90%8Dflutter生成一个不带签名的apk:1. 修改android目录下的build.gradle文件,修改buildTypes下的release代码块,将signingConfig signingConfigs.rele...

2019-05-21 19:25:56 1746

原创 flutter疑难杂症之记一次RenderBox测量坐标错误

项目中用到精确坐标计算,要求在绘制完成后立即测量控件在屏幕中的坐标,代码如下: void initState(){ ... WidgetsBinding.instance.addPostFrameCallback((callback) { _calculateAfterLayout(); }); ... }...

2019-05-09 19:54:41 1854 2

原创 flutter常见编译运行等奇怪问题的汇总【持续更新】

1. flutter ios 卡死在闪屏页: 解决办法:1) flutter doctor2) flutter clean3) flutter build ios --release4) Archive in Xcode2. flutter ios编译出现错误:shellscriptinvocationErrorCommand/bin/shfai...

2019-04-17 09:21:01 2102

原创 flutter疑难杂症之记一次release模式和debug模式的性能差距

最近遇到一个问题,来来回回花了好几天才解决,在此记录一下。需求是这样的,项目中要用到图片播放,每秒钟大概有十几张图片展示,而图片的传输是通过原始的socket tcp传输的。由于这些tcp流是服务器推送的,涉及到拆包和拼包,具体来说服务器可能一个tcp流包含多张图片,所以要对每张图片进行拆包,而它每个流可能不完整,需要等到下一次的流进行拼接然后再处理。bug是我在调试的时候...

2019-04-04 10:18:49 5697

原创 flutter入门之理解Isolate及compute

【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/88941434】 这篇文章将会讲解flutter中的Isolate,这有助于帮你解决某些耗时计算问题导致的卡顿。 一 . 原始代码 为什么要Isolate,我们先看一段比较简单的代码:import 'package:flutte...

2019-04-01 10:57:08 11935 14

原创 Java List在序列化的时候调用ObjectOutputStream.writeObject出现java.lang.StackOverflowError异常的解决

最近项目遇到了一个bug,是一个树状结构的数据太多太深导致的java.lang.StackOverflowError的bug。 项目是Android项目,起因是项目需要保存全局的机构树,但是由于Android Application可能出现被回收导致空指针异常,因此数据除了在全局的Application保存一份之外,还将数据备份在磁盘上,如果Application出现异常数据被清...

2019-03-04 12:38:12 1828

原创 flutter入门之使用PopupRoute自定义实现PopupWindow功能

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/87922051】    本文起因是由于一个弹窗,要实现一个能够通过点击显示隐藏的功能,效果如下:    第一选择是采用原生的PopupMenuItem,但是本应用的需求比较特殊,弹出的item自带背景图片,并且图片上面附件了一个Text的文本,item...

2019-02-25 19:17:05 17576 11

原创 flutter入门之通过GridView和PageView实现展示item的功能

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/87915598】    今天给大家带来的是一个非常常见的布局,通过GridView和PageView实现类似于聊天表情emoji布局的功能,我们先来看一下效果吧:    看了标题大家应该清楚,组成该布局的主体元素是GridView和PageView。...

2019-02-25 14:12:10 3630 1

原创 flutter进阶之实现一个能够拖动缩放的播放器

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86715600】    二零一八年的最后一篇博客,写完博客就收拾东西回家了,想想就有点兴奋。    这次要实现的是一个可以拖动和缩放的播放器,文字总是苍白的,直接看效果吧:        功能分解:    要实现拖动,那么必须保存播放器的坐...

2019-01-31 16:04:59 3035

原创 flutter进阶之封装ijkplayer使其支持rtsp播放

【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86650561】 【20190222更新】flutter_ijk 是flutter端的ijkplayer播放器,在IOS和Android native端都使用的是bilibili的ijkplayer,由于GitHub大小限制,本项目的ijkplayer源码放在...

2019-01-25 18:54:56 13112 14

原创 flutter入门之实现展示机构树的功能

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86528143】    在日常开发中,我们经常会遇到展示机构树的应用场景,比如说展示某公司的组织架构,或者是展示某一个目录的结构,在flutter中,暂时还没有发现类似的开源库,那么只能自己动手撸一个了,先展示下效果图:    数据结构如下,每个机构分...

2019-01-17 18:04:12 7032 1

原创 flutter入门之实现登陆页面的记住历史登录账号功能

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86220592】    切换账号在移动app中应用的场景非常多,记住账号功能在Android或者IOS中有大量的开源代码,今天,我们就用flutter来实现一个能够记录历史登录账号的Demo吧,以下是效果演示:    实现思路:    1. sha...

2019-01-10 12:45:48 13778 6

原创 flutter入门之兼容Android和IOS的状态栏

    【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/85701437】    flutter最大的优势是跨平台,Android和IOS可以共用同一套代码,不过我们在开发的过程中,还是有些地方需要单独定制的,比如说应用图标,比如说应用启动图(splash),还有就是插件开发,今天我们要讲的是IOS和Android的...

2019-01-03 16:49:09 6935

原创 flutter入门之常见的flutter问题汇总(持续更新)

【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/85317859】1. 使用AppBar后如何去掉左边的返回箭头。左边的图标对应的是leading,源代码如下(吐槽一下,CSDN暂不支持dart语言): Widget leading = widget.leading; if (leading ==...

2018-12-28 15:29:49 7847 1

原创 【排序算法】Java版十大经典排序算法实现以及测试结果

    排序算法是程序员必备技能之一,可能大家平时用到的排序算法种类比较少,完全忽视了运行时的时间空间效率问题,不过,作为一个进阶的程序员,了解各排序算法的优缺点以及实现思路很有必要,先列出常用的十大算法的概况:    算法的优劣性取决于具体需要排序的数组的大小,混乱程度,数组内容,业务需求等等,我们不能离开应用场景去评判一个算法的优劣性,没有最好,只有最适合。    以下是在Java...

2018-12-21 18:45:51 422

原创 flutter入门之windows下实现Android HelloWorld

    2018/12/5, google发布了第一个flutter的Stable版本v1.0.0,这标志着flutter正式开始了它的崛起之路。为了跟随潮流,今天特意去看了一下flutter的官网,准备一步一步的实现flutter HelloWorld。本文介绍的是windows下的环境,其他环境请查阅官网,不得不说,google很贴心,还为国内开发者准备了免翻墙镜像。      官网地址:...

2018-12-19 14:33:09 428

原创 Android实现一个可以移动,删除,保存,自定义样式的便签app

    最近一直在研究安卓的自定义View的绘制,不过只是简单的单个模块练习远远达不到期望的水准,于是,决定通过完全的自定义View实现一个便签的app,一是为了提升自己对View绘制的掌握水平,二是这个app可以用来随时记录生活中的闪光点或者学习要点,在有空的时候对这些要点进行挖掘与回顾。    app实现了便签的创建,保存,删除,多样式选择,详见gif:    便签的新建编辑与移...

2018-12-18 17:16:13 1984 2

原创 Android自定义imageview实现的视频和图片的展示

     项目中用到了im即时通讯功能,需要在聊天中展示图片和视频,对于图片和视频,都可以用glide进行加载,如果是图片,则直接展示,如果是视频,展示的时候在表面绘制一个播放按钮,如果采用原生的imageview,效果是这样的:                                             (蓝色底代表imageview控件的大小,黑线用来分割三个image...

2018-12-12 18:22:04 4312 1

原创 Android源代码中引用@hide类出现引用异常的问题error: cannot find symbol

    自己开发的APP在Android中使用一些系统隐藏的类       编译的时候报错,出现如下异常error: cannot find symbolimport android.net.EthernetManager;                  ^  symbol:   class EthernetManager  location: package andro...

2018-10-31 18:50:38 11387

原创 Android 两个surfaceview叠加的问题

    最近在做安卓视频通话,用到webrtc,要求跟对方通话的时候右上角小窗口展示本地视频,底层展示远程视频,想到的方法是在Framelayout里面嵌套两个org.webrtc.SurfaceViewRenderer(继承自SurfaceView),把远程SurfaceView放在下面,把本地SurfaceView放在上面,如下:<FrameLayout xmlns:android...

2018-09-29 14:01:07 8637 1

原创 【Android app】DialogFragment上ViewPager+ RecyclerView实现多页图片list展示

效果图:                                                         项目用了三个框架,感谢开源大神们为安卓做出的贡献。 //glide implementation 'com.github.bumptech.glide:glide:4.7.1' annotationProcessor 'com.githu...

2018-09-18 11:57:22 1141 1

转载 安装openjdk失败,提示 E: Package 'openjdk-7-jdk' has no installation candidate

在Ubuntu 16.04LTS安装open jdk失败,提示 E: Package 'openjdk-7-jdk' has no installation candidate,原因是16.04源默认不含openjdk7,通过如下指令即可安装:sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-ge...

2018-09-17 11:23:03 13252 4

原创 ijkplayer起播绿屏问题记录

    Android平台使用ijkplayer播放mp4的时候出现了起播闪一下绿屏的现象,在github上寻找解决方案,很多答案都是说由于开启硬解并且视频第一帧不是关键帧导致的,如下:          https://github.com/Bilibili/ijkplayer/issues/3233    但是我的配置是软解,也出现了同样的现象。后来在用ijkplayer的自带exam...

2018-09-08 10:46:58 3780

原创 安卓平台FFmpeg播放mp4文件出现stream 1, offset 0x28: partial file的解决办法

     项目中用到了bilibili的开源播放器ijkplayer,从http服务器上播放一段手机录制的mp4视频时候出现了如下的播放错误:08-30 08:41:38.507 27887-28085/ E/IJKMEDIA: Option max-buffer-size not found.08-30 08:41:38.507 27887-28083/ D/IJKMEDIA: FFP_...

2018-09-05 15:30:39 5939

原创 ViewPager+ Fragment结合的setUserVisibleHint()调用时机

    最近的项目使用到了ViewPager + Fragment的模式,要求在每次Fragment获取显示的时候来刷新数据,该项目下ViewPager有5个子fragment,在onCreateView及fragment的setUserVisibleHint(bool isVisibleToUser)中的isVisibleToUser为true的时候刷新数据的时候出现数据多次刷新的情况,因此对V...

2018-06-15 15:47:30 5244

转载 RecycleView调用adapter的notifyDataSetChanged()只能显示一行数据

项目中用到RecycleView,在使用的过程中发现界面刷新永远只能显示第一行,看了一两个小时都没有找到原因,后来在CSDN上发现了一篇博客,完美的解决了这个问题,感谢博主,记录一下,以免以后再次遇到。https://blog.csdn.net/fantasiasango/article/details/52188064原因是:RecycleView的item布局中layout_height采用了...

2018-05-31 11:47:36 903

原创 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHe

apk使用RecycleView运行的时候出现了这个错误,导致apk崩溃,根本原因是gradle中声明的RecycleView的方式是:    implementation 'com.android.support:recyclerview-v7:24.2.1'而在前面定义了AppCompat的声明implementation 'com.android.support:appcompat-v7:2...

2018-05-30 19:57:32 4647

原创 Android6.0使用工具篇----本地socket通信使用详解

阅读Android源码,可以发现init.rc里面有很多利用socket通信的例子,比如说zygote进程(Android6.0位于init.${ro.zygote}.rc),比如说installd进程,比如说vold进程。下面,我们参考installd来自己实现一个利用socket通信的demo程序,以便我们更好理解系统socket的使用。代码流程图: 1. 首先,在init.rc里面注册一个s...

2018-04-03 13:01:26 4320

原创 Android6.0启动篇----代码下载与编译

话不多说,直接进入正文我的系统环境:Windows 10+VMWare虚拟机+Ubuntu14.04_x64位系统,3G内存,120G硬盘 (安装虚拟机时候最好选择2G以上内存,提升性能,80G以上硬盘大小,我是120G,其实安卓源码并不大,编译完成后一共才占用50G不到,考虑到下载的时候.repo目录非常大,如果硬盘分配太小,网络不好的情况下可能下载会失败) Android源码下载...

2018-03-28 22:29:47 257

原创 Android利用Binder进行通信

Android利用Binder进行通信Binder作为Android使用最广泛的IPC通信机制之一,其重要性不言而喻。Binder的实现思想与原理各路大神已经分析的十分透彻了,个人觉得最好以及最详细的是老罗的Android之旅系列里面关于Binder的讲解: [ Android进程间通信(IPC)机制Binder简要介绍和学习计划]Binder作为一种高效的IPC通信手段,其使用也十分的简单,本文参

2017-09-03 12:28:58 627

原创 Android apk运行时错误java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient

最近在Hisi3751V500上移植一个新的项目,在运行gitv牌照方apk的时候提示java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient06-03 17:44:28.966 I/dalvikvm( 3617): Could not find method com.google.gson.GsonBuilder.set

2017-06-06 20:07:21 19261

原创 Android实现BMP和PNG转换为JPEG格式

项目需求,需要把BMP24位的图片转换成jpeg的格式,在网上查询了一些不同格式图片的基本知识,加以总结,实现了一个简单的Demo程序,先贴代码,然后再进行理解 picSwitcher.java文件:package com.example.bmptojpeg;import java.io.DataInputStream;import java.io.FileInputStream;import

2017-01-17 20:20:24 6070 2

原创 Android修改标准键值后编译错误

问题背景: 在工作中遇到一个问题,需要在KeyEvent.java新增一个键值148,作删除键用,于是打算将Android原有148键KEYCODE_NUMPAD_4修改为一个其他的键值。将KEYCODE_NUMPAD_4的Keycode修改为1480后make update-api后编译还是会出现错误:out/target/common/obj/PACKAGING/public_api.txt

2016-12-15 10:39:21 1378

翻译 SDL2-2.0.4出现Could not initialize SDL : No available video device

Ubutu12.04在安装SDL2-2.0.4后SDL_Init初始化SDL_INIT_VIDEO时出现Could not initialize SDL : No available video device错误,但是在SDL-1.2.15版本却是正常的,解决办法: sudo apt-get build-dep xscreensaver sudo apt-get source

2016-04-05 18:08:17 7084 1

原创 Android 上层wifi简单介绍及代码演示

闲来无事,研究一下Android的wifi模块。涉及到的类: *1.WifiManager:管理wifi连接的service,可由getSystemService(Context.WIFI_SERVICE)获取* *2.ScanResult:包含wifi的SSID、BSSID、level等信息*写了一个比较简单的查看wifi信息的apk,源码如下:Activity源代码pack

2015-02-10 15:15:13 702

原创 简单的通用链表实现

最近项目需要用到链表,但是用专用链表显得不够高端

2014-10-31 16:34:07 474

原创 字节序----大端序和小端序

大端序 (big :

2014-10-30 15:50:40 1363

ViewPagerTest

DialogFragment上ViewPager+ RecyclerView实现多页图片list展示

2018-09-18

本地socket通信的简单实现demo

本地socket通信的简单实现demo,通过此demo理解Android源码中的socket通信逻辑

2018-04-03

Windows下m3u8切片工具

ffmpeg实现的工具,支持将大视频切片生成小的ts并且生成对应的m3u8文件,直接作为hls格式视频流播放,支持配置hls服务器地址,端口号,ts时长,ts数目以及ts名称这5个参数,需要源码请email ([email protected]

2017-09-28

Android使用Binder进行通信DEMO

Android上使用Binder实现的C/S通信的小Demo,虽然代码比较粗糙,但是两端通信的结构都有涉及到,相对来说比较简单,理解起来也很方便,希望对大家有所帮助

2017-09-03

Android利用Binder进行通信DEMO

Android利用Binder进行通信一个简单的列子,代码比较烂,但是大概流程已经非常清楚了,希望对大家有所帮助。。怎么设置资源分为0。。最低是1,晕

2017-09-03

TCP/IP 详解,完整三卷

TCP/IP详解,包含三卷,高清pdf文档

2017-07-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除