Android
文章平均质量分 91
佳朗
多读、多思、虚心、躬行
展开
-
Android OTA升级包制作和验证
几个概念**整包升级:**即整个Rom的数据都升级,所以升级包较大,但对要升级的目标系统的版本没有限制**增量升级:**即只升级有变化的部分,所以升级包较小,但只能针对做比对的俩个系统版本之间来升级。【完整升级包】:全量包,可直接用于整包升级使用。make otapackage命令后,会生成到out/target/product/{product_name}/{product_name}-ota-eng.{name}.zip【原始升级包】:过程包,该包会包含更详细的信息。make otapacka原创 2021-05-20 20:21:25 · 5879 阅读 · 1 评论 -
系统源码分析-系统缩略图小文件系统MiniThumbFile
前些日子看张绍文的高手课 / IO优化(中)时,里面提到了微信的一个小文件系统,但是没有细说,在评论区回答学员的问题时大概说了下原理:作者回复: 这个小文件系统是应用层的方案,只是把一大堆的小文件组织成一个超大文件。并没有替换原生的文件系统笔者看到这块,突然想到很早之前看过的系统缩略图相关源码时,了解到的一个知识点跟其描述的很像,猜测大概就是类似的东西,随重新温习一下。原创 2021-04-28 11:08:35 · 316 阅读 · 0 评论 -
ThreadLocal分析详解,这一篇就够了
先简单总结一下,等看完代码分析后,可以在回来看一下上面的图。每个线程中都持有一个ThreadLocalMap对象,ThreadLocalMap中又保存了ThreadLocal - value键值对。原创 2021-04-08 18:06:50 · 365 阅读 · 0 评论 -
android添加自定义的系统服务
前言其本质,还是通过binder方式进行通信。创建一个binder接口,可通过aidl方式创建接口的实现类,即为服务类添加服务到系统创建service管理类manage注册服务对应的manger,以供调用者使用配置修改SELinux权限。(在Enforcing强制模式下,无法使用)编译,需先make update-api步骤一个Map service的例子,只实现简单的set和get方法。PS:在操作的时候,有一个小技巧,就是查看现有熟悉的服务的写法,比如IAlarmManager原创 2020-07-29 09:49:16 · 3132 阅读 · 2 评论 -
好开发的工具
免费标注工具 标你妹 根据图片生成主题 lavishbootstrap在线SVG播放 svgsprite设计导航 shejidarenAndroid源码在线查看 androidxref智能png和jpg在线压缩工具 tinypng代码统计工具 Cloc安装下载:(http://blog.csdn.net/xiprofile/article/details/37597223原创 2017-06-27 10:32:47 · 319 阅读 · 0 评论 -
Draw与String之间转换的正确姿势
将Draw转成String,网上有很多类似的代码,如下的,但多次互转的话,Draw压缩很厉害:从一张高清图,到毛玻璃,再到马赛克,最后消失。基于此,所以写下此博客。网上类似的代码:public Drawable byteToDrawable(String icon) { byte[] img=Base64.decode(icon.getBytes(), Base6...原创 2018-12-28 13:35:50 · 838 阅读 · 0 评论 -
从跨用户文件拷贝说起DocumentUI记录
前言需求是,从分用户中,获取主用户中下载目录(sd卡Download目录)下的文件/目录,并复制到分用户中的下载目录(sd卡Download目录),开始的思路是,通过File类读取主用户的文件/目录,再写入分用户的下载目录。但是,再使用的时候发现几个问题:File不能跨用户读取。就算你有准确的文件sd路径,也无法跨进程读取到文件的流。那么,既然从File无法入手,我们就从Uri入手了。...原创 2019-02-25 17:10:53 · 938 阅读 · 1 评论 -
volatile学习记录
volatile是java中关键词之一,作为一种轻量级同步机制,在多线程中经常会被使用。被volatile修饰的变量,具有可见性、有序性,不具备原子性。原子性:指不可中断的一个或一系列操作,即这些操作是不可被中断的,要么全部执行完,要么不执行,若只执行一部分,那么就不具备原子性。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,比如:int x = 1; int ...原创 2019-04-16 14:24:39 · 110 阅读 · 0 评论 -
Retrofit原理浅析
Retrofit是一个网络加载框架,底层是基于OkHttp封装的,api接口定义和api接口使用解耦,并可以通过注解构建不同的请求方式和参数,还可以支持数据解析转换(gson)以及线程调度异步请求(RxJava)的优点。原创 2019-09-04 15:27:53 · 327 阅读 · 0 评论 -
android架包记录(更新中)
摘要: 鉴于每次开发时,想使用某个架包时,不记得全名称,都需要度娘,很是麻烦。于是,在此记录下来,以便方便使用。RecyclerView RecyclerView是5.0新特性中一个非常酷炫的控件。可以说是ListView和GridView的升级版,能很好的实现一些ListView和GridView不易实现的效果。可以通过导入support-v7对其进行使用。compile 'com.andro原创 2017-03-10 10:48:09 · 366 阅读 · 0 评论 -
EventBus使用记录(一)
摘要:EventBus是在看一个开源项目时,偶然之间看到这个框架,不认识,遂学习之,并记录下来。概述EventBus 是一个事件发布和订阅的轻量级框架。通过解耦发布者和订阅者简化Android事件传递 。可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,执行方法,代码简洁明了。导入方式原创 2017-03-08 16:48:49 · 488 阅读 · 0 评论 -
Android中WindowManager详解
最近看到 关于 WindowManager的介绍,感到新奇下,了解了一下,并整理,以供备用:一、WindowManager是什么 WindowManager是Android中一个重要的Service,是全局且唯一的。WindowManager继承自ViewManager。主要用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。通过Context.原创 2014-12-17 22:46:54 · 2610 阅读 · 0 评论 -
(android学习)Android 学习ViewFlipper ——界面滑动切换
ViewFlipper是一个View容器类,ViewFlipper继承至FrameLayout的,所以它是一个Layout里面可以放置多个View,一般用于实现图片、页面的切换,并可以设定时间间隔,让它自动播放。继承关系如下:一、实现本例通过ViewFlipper和onTouchEvent实现自动播放和手势滑屏事件,并通过倒计时来实现自动播放的动画效果。先看效果:原创 2014-12-31 01:02:38 · 659 阅读 · 0 评论 -
使用反射的方式修改webview允许跨域
原文出处:点击打开链接package com.example.weinre;import java.lang.reflect.Field;import java.lang.reflect.Method;import android.content.Context;import android.util.AttributeSet;import android.转载 2015-04-16 19:13:20 · 3388 阅读 · 0 评论 -
【Android】滑动屏幕效果GestureDetector、OnGestureListener、ViewFlipper
转载:点击打开链接屏幕切换指的是在同一个Activity内屏幕见的切换。 通过GestureDetector、OnGestureListener实现滑屏事件。ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。示例中第一页仅放了一个按钮BUTTON,向下滑屏时,每页都只放了一个TEXTVIEW。 页面转载 2015-06-25 10:34:55 · 556 阅读 · 0 评论 -
android studio使用技巧
1、设置起始页(1)进入设置界面(2)在system settings中 取消勾选Reopen last project on startup。即可ss原创 2016-07-17 10:15:55 · 280 阅读 · 0 评论 -
TextView setText html 字体大小属性无效原因及解决
前言之前因为Launcher需要图标之前加了个小圈点,所以有此需求。这篇时尝试用 csdn的markdown写的哈。示例如下:setText(Html.fromHtml("<font size='50'>dddd</font>" ));原因TextView 使用 HTML 方式设置text的话,size属性时无效的,但是可以使用<small><big>标签解决。解决方法setText(Html.原创 2016-12-08 11:39:32 · 4675 阅读 · 1 评论 -
Android自定义View---秒表/时钟
前言 网上看到一个html的秒表,赶脚不错,就闲着试试实现,时钟/秒表在学习自定义view中是一个不错的开始学习对象,毕竟看再多关于别人的自定义view文章也不如自己动动手。秒表分析画钟表,基本就是那么几个步骤,那先逐个分析一下: - 画外表盘 - 画内表盘 - 画刻度线 - 画刻度值 - 提供外部接口(开始,暂停,复位等)以上几步是必要的,当然顺序可以打乱,有的步骤也可以合并执行,原创 2016-12-19 11:49:30 · 2711 阅读 · 0 评论 -
android问题记录:You need to use a Theme.AppCompat theme (or descendant) with this
问题:Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this由上面可知,需要使用一个 Theme.AppCompat theme 相关的 主题。起因 新建一个Activity,准备给其设置全屏,出现此问题。<activityan原创 2017-03-02 14:34:15 · 396 阅读 · 0 评论 -
android中Spinner(下拉框) 自定义样式 可改变 下拉选项的高度
一、改变高度 // 建立数据源 final String[] mItems = getResources().getStringArray(R.array.liushuispinnername); // 建立Adapter并且绑定数据源 ArrayAdapter _Adapter=new ArrayAdapter(this,R.layout.原创 2014-12-12 09:34:58 · 12464 阅读 · 1 评论