- 博客(67)
- 资源 (12)
- 收藏
- 关注
原创 repo和Git 使用记录
Git 使用记录本地:###步骤:1、创建文件夹 HelloWorld,进入目录2、新项目初始化:git init 3、将当前目录下所有文件添加到缓冲区:git add .4、将缓冲区代码提交到本地仓库: git commit . -m '注释' 远程:###步骤:1、在github上创建一个仓库2、将远程仓库代码下载到本地: git clone https://gi
2017-02-14 12:04:29 3145
原创 Android的开机logo生成
注意事项:图片不能太大,要不会出问题,图片深度为8即可。生成可用的uboot和kernel的logo图片。可以通过命令转换BMP格式的图片。然后就可以使用新图替换旧图片,在。
2023-12-11 16:40:55 489
原创 制作 stun/turn 服务 Dockerfile 文件
制作 基于 ubuntu 18.04 的 stun/turn 服务 Dockerfile 文件
2023-07-14 13:40:43 486
原创 【模拟器】Android Studio模拟器运行自己的编译的Android源码镜像(Android9.0~Android12已自测)
源码下载下载:通过aosp-latest下载Android源码。切换分支:#源码目录下cd .repo/manifestsrepo init -b android-9.0.0_r3 #Android 9repo sync源码编译source build/envsetup.shlunch aosp_x86_64-engmake -j16 #16是cpu数目,根据自身电脑填写#最终会在out/target/product/generic_x86_64中生成镜像文件编译..
2021-11-17 17:13:29 6669 14
原创 通过aosp-latest下载Android源码
步骤#下载初始化包,同浏览器下载好一些,可以断点下载wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar tar xf aosp-latest.tarcd AOSP # 解压得到的 AOSP 工程目录# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录repo sync # 正常同步一遍即可得到完整目录# 或 repo sync -l 仅checkout代码报错一...
2021-11-05 14:05:58 2187 1
原创 【记录】Linux解压命令
解压tar文件tar xf test.tar -C /home/lang/Desktop //解压test.tar到桌面
2021-11-05 09:52:26 90
原创 【模拟器】android Studio 模拟器中直接运行系统应用
在android studio的模拟器中,可以直接通过android studio直接运行 `android:sharedUserId="android.uid.system"`应用
2021-11-04 16:25:13 2669 2
原创 Android系统进行OTA升级失败时能自动重启,防止一直处于recovery界面
前言当系统因电量不足或断电、包拷贝失败或破损、升级版本为低版本等原因OTA失败时,此时,系统会进入recovery界面,对于普通用户来说,可能会莫名其妙或不知所措。因此,可以当升级失败时,系统可以自动重启,防止处于一直recovery界面。方法只需在出现失败时,让系统重启即可。当然在重启之前,需要让系统将日志输出,防止日志丢失或不全。修改位置:bootable/recovery/recovery.cppcase INSTALL_CORRUPT: ui->SetBackgrou
2021-11-02 14:07:31 1177
原创 Android OTA升级包制作和验证
几个概念**整包升级:**即整个Rom的数据都升级,所以升级包较大,但对要升级的目标系统的版本没有限制**增量升级:**即只升级有变化的部分,所以升级包较小,但只能针对做比对的俩个系统版本之间来升级。【完整升级包】:全量包,可直接用于整包升级使用。make otapackage命令后,会生成到out/target/product/{product_name}/{product_name}-ota-eng.{name}.zip【原始升级包】:过程包,该包会包含更详细的信息。make otapacka
2021-05-20 20:21:25 6549 1
原创 系统源码分析-系统缩略图小文件系统MiniThumbFile
前些日子看张绍文的高手课 / IO优化(中)时,里面提到了微信的一个小文件系统,但是没有细说,在评论区回答学员的问题时大概说了下原理:作者回复: 这个小文件系统是应用层的方案,只是把一大堆的小文件组织成一个超大文件。并没有替换原生的文件系统笔者看到这块,突然想到很早之前看过的系统缩略图相关源码时,了解到的一个知识点跟其描述的很像,猜测大概就是类似的东西,随重新温习一下。
2021-04-28 11:08:35 336
原创 张绍文高手课:程序员修炼之路| 设计能力的提升途径 总结
编码历练:先多写代码,在健壮性、稳定性方面提升自身的代码基础功,而且在孰能生巧中会积累了一些经验和技巧。理论学习:简单说就是看书、看博客,学你你能所得到的所有资源,但前提是内容质量要高。看是看不懂没关系,认真看就行。实践:用理论指定你的实践,在实践中深入理解理论,提升自身自信。重温理论:是最好的学习方式。重温之前看过的书籍,你会发现之前那些似懂非懂的内容,现在看来豁然开朗,不再晦涩难懂了。而且之前你觉得理解的内容,再经过一段时间工作和生活的沉淀后,通常也会有新的收获。再实践:在自省中再实.
2021-04-20 10:14:38 806
原创 ThreadLocal分析详解,这一篇就够了
先简单总结一下,等看完代码分析后,可以在回来看一下上面的图。每个线程中都持有一个ThreadLocalMap对象,ThreadLocalMap中又保存了ThreadLocal - value键值对。
2021-04-08 18:06:50 399
原创 一个简单的多功能自定义圆角ImageView
之前为了图方便和赶工期,所以直接使用早期的工具类去裁剪。后期的话有一些时间,所以做了一些优化,就自定义了一个圆角ImageView。其实大概思路都是清楚的,但是想看下网上有没有其他好的方便的,结果一查,跟我的思路基本一样,就是在onDrawable中做裁剪,但是代码一大推,也是醉了。后面看到一个挺有意思的思路,是通过clipPath实现的。使用裁剪的代码://RoundedBitmapDrawable是基于glide的public static Drawable bitmapToRound(Con.
2021-03-08 18:36:56 190
原创 Linux系统上的Breakpad编译和使用
下载源码https://chromium.googlesource.com/breakpad/breakpad/+/master下载依赖包https://chromium.googlesource.com/linux-syscall-support/PS:无该依赖包,会报错src/client/linux/crash_generation/crash_generation_client.cc:40:10: fatal error: third_party/lss/linux_sysca..
2021-03-03 16:14:24 1050 1
原创 Android系统时间自动设置NTP服务报错
问题描述:在日期和时间中开启自动设置,时间不变,并没有同步到网络时间。问题查找:开始以为是系统默认的ntp服务器有问题,查看后发现使用的是阿里云的NTP服务器ntp2.aliyun.com,我在设备内pin了一下,也是通的。然后,查看打印日志,发现报了request time failed: Unable to resolve host "ntp2.aliyun.com" No address associated with hostname的错误,这个是因为通过域名获取地址时报的错。通过..
2021-03-02 18:02:54 1272
原创 处理MTK中DuraSpeed(快霸)引起的app被莫名其妙kill掉
一、问题描述之前在MTK源码中,添加了的自定义的launcher后,发现其经常会被莫名其妙kill掉,根据错误日志找到如下描述:DuraSpeed: Add com.my.test to the suppress list, the suppress list = [com.android.settings, com.android.calendar, com.my.launcher, com.my.test]查了下资料,发现是因为MTK内置了一套自己的进程管理软DuraSpeed(快霸)。该软件会
2020-09-02 11:29:44 6591
原创 android添加自定义的系统服务
前言其本质,还是通过binder方式进行通信。创建一个binder接口,可通过aidl方式创建接口的实现类,即为服务类添加服务到系统创建service管理类manage注册服务对应的manger,以供调用者使用配置修改SELinux权限。(在Enforcing强制模式下,无法使用)编译,需先make update-api步骤一个Map service的例子,只实现简单的set和get方法。PS:在操作的时候,有一个小技巧,就是查看现有熟悉的服务的写法,比如IAlarmManager
2020-07-29 09:49:16 3370 2
原创 Android.mk常用说明整理
LOCAL_PATH := $(call my-dir)必须定义。当前路径,即本Android.mk文件所处目录。每个Android.mk文件必须先定义 LOCAL_PATH 变量,此变量表示源文件在开发树中的位置。$(call my-dir)为编译系统Build System提供的宏函数,返回的就是当前目录路径。避免频繁定义,LOCAL_PATH不会被$(CLEAR_VARS)清理,所以...
2019-11-23 13:07:17 981
原创 markdown转html生成侧边目录
前言因为markdown文件里面有页内跳转,生成的pdf后无效,生成的html文件则可以。但是html增加top目录,是处于页面顶部的,对于用户浏览体验不是很好,所以想将顶部目录放入侧边,这样体验会好一些。网上找了好些方法,大多会生成伴随js或者cs之类的,而不是仅仅一个html,虽然它们生成的样式还是适配非常好,但是对于我只需要将目录放入侧边这个简单需求来说,还是太麻烦了,而且我也只希望给其...
2019-11-08 17:46:15 2513 3
原创 Retrofit原理浅析
Retrofit是一个网络加载框架,底层是基于OkHttp封装的,api接口定义和api接口使用解耦,并可以通过注解构建不同的请求方式和参数,还可以支持数据解析转换(gson)以及线程调度异步请求(RxJava)的优点。
2019-09-04 15:27:53 357
原创 volatile学习记录
volatile是java中关键词之一,作为一种轻量级同步机制,在多线程中经常会被使用。被volatile修饰的变量,具有可见性、有序性,不具备原子性。原子性:指不可中断的一个或一系列操作,即这些操作是不可被中断的,要么全部执行完,要么不执行,若只执行一部分,那么就不具备原子性。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,比如:int x = 1; int ...
2019-04-16 14:24:39 120
原创 android studio Error:(55, 1) 错误: 非法字符: \65279 Error:(1, 10) 错误: 需要class, interface或enum
拷贝代码到studio的时候,报这个非法字符: \65279错误,这个是编码格式的问题。我们可以通过Nodepad等工具将文件编码改为UTF-8 无BOM格式即可。
2019-03-18 10:42:23 391
原创 代码开发git管理记录-让自己从单进程切入多进程模式
序言 之前在开发中比较困扰我的问题之一,项目代码开发管理上感觉乱糟糟的。这种感觉就像,你凌乱的房间,虽然你都能找到你要找的东西,但房间确确实实就是乱的,你自己有时也感觉很槽糕。 所以,后来痛定思痛,去请教了公司其他项目的老同事,了解学习了他们的代码开发管理的流程。并在我自己的工作中应用,感觉顺畅了许多,而且能很好的让我迈入多进程模式工作。问题 比如早先正开发项目的某个新需求的时候,...
2019-03-13 09:58:15 222
原创 从跨用户文件拷贝说起DocumentUI记录
前言需求是,从分用户中,获取主用户中下载目录(sd卡Download目录)下的文件/目录,并复制到分用户中的下载目录(sd卡Download目录),开始的思路是,通过File类读取主用户的文件/目录,再写入分用户的下载目录。但是,再使用的时候发现几个问题:File不能跨用户读取。就算你有准确的文件sd路径,也无法跨进程读取到文件的流。那么,既然从File无法入手,我们就从Uri入手了。...
2019-02-25 17:10:53 989 1
原创 笔记-数据结构和算法
一、数据结构1、定义和起源定义:是指相互之间存在一种或多种特定关系的数据元素的集合。简单理解,就是把一堆基本的数据,按照某种顺序给揉成一坨。起源:早期是人们用计算机来处理现实中非数值类型的问题,而使用的科学手段,随后被外国人慢慢系统化。2、数据与结构 数据结构顾名思义,可以拆分为数据和结构2部分,接下来我们先将数据结构,拆分为数据和结构来分析。(1)、关于数据 基本概念和术语...
2019-02-01 16:34:48 294
原创 Draw与String之间转换的正确姿势
将Draw转成String,网上有很多类似的代码,如下的,但多次互转的话,Draw压缩很厉害:从一张高清图,到毛玻璃,再到马赛克,最后消失。基于此,所以写下此博客。网上类似的代码:public Drawable byteToDrawable(String icon) { byte[] img=Base64.decode(icon.getBytes(), Base6...
2018-12-28 13:35:50 879
原创 Linux 服务器防止SSH暴力破解之Denyhosts安装操作记录
之前京东云有活动,便买了个服务器,基本没怎么用过。这几天登陆时,发现自己的京东云服务器有大量的远程桌面破解信息,而且ip都不一样,作为一个对后端和安全了解甚少的小白,就只能度娘怎么防止这种情况,发现比较多的方法是通过DenyHosts脚本来实现,简单说就是将多次攻击的同一IP记录到/etc/hosts.deny文件,已达到自动屏蔽该ip的功能,具体原理可以看百科。步骤下载、解压
2018-01-05 18:24:00 822
原创 好开发的工具
免费标注工具 标你妹 根据图片生成主题 lavishbootstrap在线SVG播放 svgsprite设计导航 shejidarenAndroid源码在线查看 androidxref智能png和jpg在线压缩工具 tinypng代码统计工具 Cloc安装下载:(http://blog.csdn.net/xiprofile/article/details/37597223
2017-06-27 10:32:47 330
原创 ubuntu 安装 repo 记录
问题:问题一: fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundlefatal: error [Errno 101] Network is unreachable原因: 可能是Ubuntu命令安装的repo版本太久,我的电脑不能翻墙.所以下面我是下载安装repo的.问题二: .repo/repo/git_co
2017-05-16 18:35:05 21342 1
原创 android问题之 java.lang.ClassNotFound**.apk**nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
摘要:因为换了机器,重装环境,等环境部署好后运行发现一直崩溃。提示Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xxx.xxxx" on path: DexPathList[[zip file "/data/app/com.xxx.xxxx-1/base.apk"],nativeLibraryDirector
2017-04-13 19:23:15 4540 1
原创 android问题之Button自定义样式selector后,点击无效果
问题: 自定义了一个button样式,如下,正常颜色为红色,按下为蓝色,但是点击无变色效果,一直为红色。<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape>
2017-03-28 11:12:55 1812
原创 android问题之 mount时显示:mount: Permission denied
本来准备删除system/app中文件时,提示Read-only file system,故准备修改权限,mount时出现了标题的提示。操作:mount -o remount rw /system原因:某些手机下,需要加逗号方法:mount -o remount,rw /system总结:很无奈,找了好久,还是google搜索靠谱些
2017-03-23 15:02:02 10481
原创 android架包记录(更新中)
摘要: 鉴于每次开发时,想使用某个架包时,不记得全名称,都需要度娘,很是麻烦。于是,在此记录下来,以便方便使用。RecyclerView RecyclerView是5.0新特性中一个非常酷炫的控件。可以说是ListView和GridView的升级版,能很好的实现一些ListView和GridView不易实现的效果。可以通过导入support-v7对其进行使用。compile 'com.andro
2017-03-10 10:48:09 392
原创 android问题记录: finished with non-zero exit value 2
摘要:导入com.android.support:palette-v7:21.+包时,提示错误,很费解,度娘了一下,说是有重复的包,随按照网上的方式试了几个,没有成功,而且项目代码量较大,很麻烦,最后得以解决。分享下。问题描述 finished with non-zero exit value 2 问题原因 包重复了,项目包含了两个相同包名的不同 project 或者 jar。最后,找
2017-03-08 18:35:20 359
原创 EventBus使用记录(一)
摘要:EventBus是在看一个开源项目时,偶然之间看到这个框架,不认识,遂学习之,并记录下来。概述EventBus 是一个事件发布和订阅的轻量级框架。通过解耦发布者和订阅者简化Android事件传递 。可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,执行方法,代码简洁明了。导入方式
2017-03-08 16:48:49 497
Android自定义View-秒表/时钟
2016-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人