- 博客(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 4896
原创 flutter入门之封装一个加载控件Loading Dialog
日常开发中,我们经常会遇到一些耗时加载的应用场景,为了给用户提示,所以我们常常会在加载的时候展示一个加载框,给用户带来较好的体验。 今天我们的内容是封装一个简单易用的加载控件,首先来看一下效果。 由于这个内容比较简单,我们先看一下代码:dialog.dartimport 'package:flutter/cupertino.dart';import 'pa...
2019-06-19 12:53:02 10654 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 1881
原创 flutter疑难杂症之记一次RenderBox测量坐标错误
项目中用到精确坐标计算,要求在绘制完成后立即测量控件在屏幕中的坐标,代码如下: void initState(){ ... WidgetsBinding.instance.addPostFrameCallback((callback) { _calculateAfterLayout(); }); ... }...
2019-05-09 19:54:41 1947 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 2148
原创 flutter疑难杂症之记一次release模式和debug模式的性能差距
最近遇到一个问题,来来回回花了好几天才解决,在此记录一下。需求是这样的,项目中要用到图片播放,每秒钟大概有十几张图片展示,而图片的传输是通过原始的socket tcp传输的。由于这些tcp流是服务器推送的,涉及到拆包和拼包,具体来说服务器可能一个tcp流包含多张图片,所以要对每张图片进行拆包,而它每个流可能不完整,需要等到下一次的流进行拼接然后再处理。bug是我在调试的时候...
2019-04-04 10:18:49 5907
原创 flutter入门之理解Isolate及compute
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/88941434】 这篇文章将会讲解flutter中的Isolate,这有助于帮你解决某些耗时计算问题导致的卡顿。 一 . 原始代码 为什么要Isolate,我们先看一段比较简单的代码:import 'package:flutte...
2019-04-01 10:57:08 12211 14
原创 Java List在序列化的时候调用ObjectOutputStream.writeObject出现java.lang.StackOverflowError异常的解决
最近项目遇到了一个bug,是一个树状结构的数据太多太深导致的java.lang.StackOverflowError的bug。 项目是Android项目,起因是项目需要保存全局的机构树,但是由于Android Application可能出现被回收导致空指针异常,因此数据除了在全局的Application保存一份之外,还将数据备份在磁盘上,如果Application出现异常数据被清...
2019-03-04 12:38:12 1887
原创 flutter入门之使用PopupRoute自定义实现PopupWindow功能
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/87922051】 本文起因是由于一个弹窗,要实现一个能够通过点击显示隐藏的功能,效果如下: 第一选择是采用原生的PopupMenuItem,但是本应用的需求比较特殊,弹出的item自带背景图片,并且图片上面附件了一个Text的文本,item...
2019-02-25 19:17:05 18010 12
原创 flutter入门之通过GridView和PageView实现展示item的功能
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/87915598】 今天给大家带来的是一个非常常见的布局,通过GridView和PageView实现类似于聊天表情emoji布局的功能,我们先来看一下效果吧: 看了标题大家应该清楚,组成该布局的主体元素是GridView和PageView。...
2019-02-25 14:12:10 3737 1
原创 flutter进阶之实现一个能够拖动缩放的播放器
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86715600】 二零一八年的最后一篇博客,写完博客就收拾东西回家了,想想就有点兴奋。 这次要实现的是一个可以拖动和缩放的播放器,文字总是苍白的,直接看效果吧: 功能分解: 要实现拖动,那么必须保存播放器的坐...
2019-01-31 16:04:59 3154
原创 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 13446 14
原创 flutter入门之实现展示机构树的功能
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86528143】 在日常开发中,我们经常会遇到展示机构树的应用场景,比如说展示某公司的组织架构,或者是展示某一个目录的结构,在flutter中,暂时还没有发现类似的开源库,那么只能自己动手撸一个了,先展示下效果图: 数据结构如下,每个机构分...
2019-01-17 18:04:12 7225 1
原创 flutter入门之实现登陆页面的记住历史登录账号功能
【原创不易,转载请注明出处:https://blog.csdn.net/email_jade/article/details/86220592】 切换账号在移动app中应用的场景非常多,记住账号功能在Android或者IOS中有大量的开源代码,今天,我们就用flutter来实现一个能够记录历史登录账号的Demo吧,以下是效果演示: 实现思路: 1. sha...
2019-01-10 12:45:48 14104 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 7070
原创 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 7942 1
原创 【排序算法】Java版十大经典排序算法实现以及测试结果
排序算法是程序员必备技能之一,可能大家平时用到的排序算法种类比较少,完全忽视了运行时的时间空间效率问题,不过,作为一个进阶的程序员,了解各排序算法的优缺点以及实现思路很有必要,先列出常用的十大算法的概况: 算法的优劣性取决于具体需要排序的数组的大小,混乱程度,数组内容,业务需求等等,我们不能离开应用场景去评判一个算法的优劣性,没有最好,只有最适合。 以下是在Java...
2018-12-21 18:45:51 452
原创 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 454
原创 Android实现一个可以移动,删除,保存,自定义样式的便签app
最近一直在研究安卓的自定义View的绘制,不过只是简单的单个模块练习远远达不到期望的水准,于是,决定通过完全的自定义View实现一个便签的app,一是为了提升自己对View绘制的掌握水平,二是这个app可以用来随时记录生活中的闪光点或者学习要点,在有空的时候对这些要点进行挖掘与回顾。 app实现了便签的创建,保存,删除,多样式选择,详见gif: 便签的新建编辑与移...
2018-12-18 17:16:13 2042 2
原创 Android自定义imageview实现的视频和图片的展示
项目中用到了im即时通讯功能,需要在聊天中展示图片和视频,对于图片和视频,都可以用glide进行加载,如果是图片,则直接展示,如果是视频,展示的时候在表面绘制一个播放按钮,如果采用原生的imageview,效果是这样的: (蓝色底代表imageview控件的大小,黑线用来分割三个image...
2018-12-12 18:22:04 4571 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 11515
原创 Android 两个surfaceview叠加的问题
最近在做安卓视频通话,用到webrtc,要求跟对方通话的时候右上角小窗口展示本地视频,底层展示远程视频,想到的方法是在Framelayout里面嵌套两个org.webrtc.SurfaceViewRenderer(继承自SurfaceView),把远程SurfaceView放在下面,把本地SurfaceView放在上面,如下:<FrameLayout xmlns:android...
2018-09-29 14:01:07 8908 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 1211 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 13602 4
原创 ijkplayer起播绿屏问题记录
Android平台使用ijkplayer播放mp4的时候出现了起播闪一下绿屏的现象,在github上寻找解决方案,很多答案都是说由于开启硬解并且视频第一帧不是关键帧导致的,如下: https://github.com/Bilibili/ijkplayer/issues/3233 但是我的配置是软解,也出现了同样的现象。后来在用ijkplayer的自带exam...
2018-09-08 10:46:58 3931
原创 安卓平台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 6219
原创 ViewPager+ Fragment结合的setUserVisibleHint()调用时机
最近的项目使用到了ViewPager + Fragment的模式,要求在每次Fragment获取显示的时候来刷新数据,该项目下ViewPager有5个子fragment,在onCreateView及fragment的setUserVisibleHint(bool isVisibleToUser)中的isVisibleToUser为true的时候刷新数据的时候出现数据多次刷新的情况,因此对V...
2018-06-15 15:47:30 5320
转载 RecycleView调用adapter的notifyDataSetChanged()只能显示一行数据
项目中用到RecycleView,在使用的过程中发现界面刷新永远只能显示第一行,看了一两个小时都没有找到原因,后来在CSDN上发现了一篇博客,完美的解决了这个问题,感谢博主,记录一下,以免以后再次遇到。https://blog.csdn.net/fantasiasango/article/details/52188064原因是:RecycleView的item布局中layout_height采用了...
2018-05-31 11:47:36 977
原创 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 4683
原创 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 4659
原创 Android6.0启动篇----代码下载与编译
话不多说,直接进入正文我的系统环境:Windows 10+VMWare虚拟机+Ubuntu14.04_x64位系统,3G内存,120G硬盘 (安装虚拟机时候最好选择2G以上内存,提升性能,80G以上硬盘大小,我是120G,其实安卓源码并不大,编译完成后一共才占用50G不到,考虑到下载的时候.repo目录非常大,如果硬盘分配太小,网络不好的情况下可能下载会失败) Android源码下载...
2018-03-28 22:29:47 304
原创 Android利用Binder进行通信
Android利用Binder进行通信Binder作为Android使用最广泛的IPC通信机制之一,其重要性不言而喻。Binder的实现思想与原理各路大神已经分析的十分透彻了,个人觉得最好以及最详细的是老罗的Android之旅系列里面关于Binder的讲解: [ Android进程间通信(IPC)机制Binder简要介绍和学习计划]Binder作为一种高效的IPC通信手段,其使用也十分的简单,本文参
2017-09-03 12:28:58 658
原创 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 19585
原创 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 6178 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 1431
翻译 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 7210 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 735
Windows下m3u8切片工具
2017-09-28
Android使用Binder进行通信DEMO
2017-09-03
Android利用Binder进行通信DEMO
2017-09-03
flutter中使用socket导致UI卡顿?
2019-03-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人