- 博客(33)
- 收藏
- 关注
原创 树莓派调试板适配
串口名称是 USB-SERIAL CH340,波特率是115200,其余默认即可。关闭log中的内核error:echo 0 > /proc/sys/kernel/printk
2021-12-03 17:17:26
171
原创 Android源码编译(基于配置好的环境)
该博客是已经配置成熟的编译环境,用于快速的下载新代码参照,如果没有配置编译环境,请参照我的另一篇博客链接。(1)切换Python至version3.6+:sudo update-alternatives --config python有问题,请参照我的另一篇博客链接。(2)初始化源码仓库,这里将repo文件中的google的REPO_URL改成清华的url:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/man
2020-10-19 17:58:29
137
原创 Android源码编译(逐步演绎版:遇到问题,解决问题,直至完成)
查看repo库上分支版本:git --git-dir=.repo/manifests/.git/ branch -a
2020-10-19 17:54:58
642
原创 Android源码编译时Python版本问题(EOFError: marshal data too short)
在repo init时,需要python3.6+,在编译android源码时,又需要Python2.7,可以使用如下方式配置:使用update-alternatives 命令处理 Linux 系统中软件版本的切换,使其多版本共存。向系统注册python3.8.2:sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 2向系统注册python2.7:sudo update-alternat
2020-09-24 14:20:37
2464
原创 APP安装时的广播通知
结论:安装新APP时系统发出的广播:09-15 06:11:12.838 18166 18166 D test1 : action = android.intent.action.PACKAGE_ADDED, packageName = package:com.estrongs.android.pop替换APP时系统发出的广播:09-15 06:09:15.329 18166 18166 D test1 : action = android.intent.action.PACKAGE_REM
2020-09-15 15:23:28
545
原创 Git命令使用[日常随记]
//创建分支并切换$ git checkout -b work、//查看本地分支$ git branchmasterwork
2020-05-25 16:52:23
153
原创 C++和Java的语法区别整理
#前言:当使用某种语言开发做一段项目后,再切换其他语言时,总是会出现一些不适用的情况,虽然大多数语言都是相通的,但还是有必要先整理他们的区别,方便切换时使用。#正文:(1)创建和销毁对象:C++:Java:(2)(3)(4)(5)(6)(7)(8)(9)(10)...
2020-02-06 12:26:53
1166
原创 Visual Studio调试Linux平台的C++程序(CMake)
CMake是一个跨平台编译工具,可以生成各平台的makefile,非常方便。关于“Visual Studio调试Linux平台的C++程序”,请参照我的另一篇文章,https://blog.csdn.net/liudi_ly/article/details/104110079构建CMake工程:打开Visual Studio,新建CMake Project,配置CMake settings ...
2020-01-29 22:02:39
1205
原创 Visual Studio调试Linux平台的C++程序
开发环境:Windows8.1Visual Studio 2019虚拟机运行ubuntu-18.04.1-desktop-amd64.iso使用Visual Studio Installer安装Linux development with C++工具包配置:新建一个Console App工程,按照工程中的Getting Started页,进行设置即可。比如需要在linux系统...
2020-01-29 21:09:47
898
原创 Android开发注意事项
(1)Android推荐使用SparseArray来替代HashMap:(执行不一定快,但是节省内存)Map<Integer, String> bbb = new HashMap<>();替换为:SparseArray ccc = new SparseArray<>();...
2020-01-19 17:23:07
118
原创 androidx.lifecycle.Transformations函数分析
package androidx.lifecycle;import androidx.annotation.MainThread;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.arch.core.util.Function;/** * Transforma...
2019-12-26 20:22:14
790
原创 设计模式-观察者模式
定义了对象之间的一对多依赖,当被观察的对象改变时,依赖其的所有观察对象都会收到通知,并可以根据需求,选择被动方式或主动方式获取数据。最重要的优点:可以解耦,实现对象间的松耦合,依赖程度降到了最低。...
2019-12-25 09:20:30
120
原创 Android的PackageName和ComponentName
(1)PackageName:[是一个字符串]就是AndroidManifest.xml文件中的package=“com.android.car.media.localmediaplayer”(2)ComponentName:[是一个对象,包含了PackageName和ClassName]可以定位App,使用它可以打开一个App的Activity或Service。 public ...
2019-12-24 16:12:46
783
原创 Java注解
Override注解是开发中最常用的,用来修饰继承或实现时需要实现的方法,如果书写错误编译时就会报错。@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}@interface 定义一个注解查看Android SDK源码中的源文件Override.java@...
2019-12-12 13:54:16
92
转载 UML中类之间的六大关系
理解六大关系中在代码中的体现,就可以轻松的阅读设计模式一、泛化关系(Generalization) 说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。 代码体现:子类继承父类。 UML符号:一条实线+空心箭头。 图示:二、实现关系(Realization) 说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一...
2019-12-11 11:40:16
737
原创 Audio Studio安装遇到的问题
(1)Android Studio报错找不到证书:需要在Android studio的jre\jre\lib\security下导入证书C:\Android\Android Studio\jre\jre\lib\security>keytool -import -aliasMyCA -keystore cacerts -file C:\Users\AAA\Documents\Cer\...
2019-12-06 13:40:19
768
原创 ProtoBuf下载和安装(Linux)
我使用的Ubuntu系统,记录下我安装的过程。下载:ProtoBuf下载首页,可以选择最新的正式版本进行下载。https://github.com/protocolbuffers/protobuf/releases我下载的最新的是3.10.1,下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.10.1安装手...
2019-11-27 15:44:10
714
原创 ProtoBuf的Socket中应用示例
写了一个socket通信下的ProtoBuf示例,三个文件:Proto协议:HelloProtobuf.proto;服务端,用于接收数据,并反序列化对象:Service.cpp客户端,用于发送数据,从控制台读取数据后,序列化后通过socket发送到服务器端:Client.cpp编写HelloProtobuf.proto文件:syntax = "proto3"; packag...
2019-11-27 15:36:29
597
原创 Socket最小Demo(Linux版)
Service端:新建文件:service.cpp#include <sys/types.h> #include <sys/socket.h>#include <stdio.h>#include &l...
2019-11-25 11:43:32
150
原创 vim常用命令
替换所有文件中的字符串“/Def.h”为“include/Def.h”sed -i s#"/Def.h"#"include/Def.h"#g `grep "/Def.h" -rl --include="*" ./`
2019-11-21 18:39:01
72
原创 Linux常用命令
查看当前目录下所有文件和目录大小(子子孙孙):du -ah查看当前目录下文件和目录大小(儿子们):du -sh *查看当前磁盘使用情况:df -h
2019-11-21 18:35:20
60
原创 static的vector成员变量的写法
在h头文件中:static std::vector<int> vec;在cpp源文件中:std::vector<int> A::vec;
2019-11-19 10:44:32
1126
原创 可变参数(C++版)
可变参数很常用,在这里整理一下:(1)宏定义可变参数:#define LOGE(...) fprintf(stderr,__VA_ARGS__)(2)函数可变参数:代码拷贝自:#include <iostream>#include <stdarg.h>//va_xxx 一系列函数必须引用该头文件//使用一个固定参数表示可变参数的数量,这里就是coun...
2019-11-15 17:15:40
656
原创 在线编译器
使用起来还不错的在线编译器:C++:http://coliru.stacked-crooked.com/多种语言:https://ideone.com/这个没用明白,但是觉得很高大上,以后有空再研究。https://gcc.godbolt.org/...
2019-11-14 10:03:38
107
原创 设计模式-单例模式
单例模式非常常用,但是在项目中一个对象是否真的需要设计成为单例,需要仔细斟酌,避免不必要的资源浪费。最优秀的单例写法,直接上代码,方便使用时直接拷贝:C++:Meyers’ Singleton,《Effective C++》系列书籍的作者 Meyers 提出的,属于懒汉模式(该对象生命周期从声明到程序结束),从C++11版本开始是线程安全的。更具体的详见博客:https://www.cn...
2019-11-13 22:10:56
258
1
原创 Android启动Service的两种方式之bindService()
Android中启动Service的两种方式:startService()bindService()此文介绍第2种:bindService()源码下载
2015-06-19 22:02:17
424
原创 Android启动Service的两种方式之startService()
Android中启动Service的两种方式:startServicebindService此文介绍第1种:StartServicestartService()方式启动的service和启动它的activity的生命周期无关。Android Service的生命周期包括onCreate(), onStart(), onDestroy()。startService()方式启动Service,系统
2015-06-09 22:03:57
708
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人