bcoder

LOCAL_MODULE_TAGS 选项说明

 分类:Uncategorized 阅读 (1,135)  LOCAL_MODULE_TAGS 选项说明已关闭评论
6月 132018
 

LOCAL_MODULE_TAGS :=user debug eng tests optional

user: 指该模块只在user版本下才编译

debug: 批该模块只在userdebug版本下才编译

eng: 指该模块只在eng版本下才编译

tests: 指该模块只在tests版本下才编译

optional:指该模块在所有版本下都编译(但只有在PRODUCT_PACKAGES中定义的模块才会被安装?)

 Posted by on 2018-06-13

mysql控制台命令记录查询

 分类:Database, MySQL 阅读 (362)  mysql控制台命令记录查询已关闭评论
6月 032018
 

操作系统:CentOS

一、查找记录

1. 通过向上箭头可以查找历史记录,但是记录太多时比较麻烦(mysql控制台没有类似linux控制台的histroy命令)

2. 向上箭头比较麻烦时可以使用下面这个文件查看sql语句记录

~/.mysql_history

二、清空记录

将一、2文件的内容清空即可

三、不再保存记录

在linux命令行里输入以下命令,将不再保存记录

ln -s /dev/null $HOME/.mysql_history

Android开机动画修改记录

 分类:Android, Java 阅读 (807)  Android开机动画修改记录已关闭评论
5月 272018
 
一、概述

需要修改bootanimation.zip

这个文件一般位于下面几个位置:

#define USER_BOOTANIMATION_FILE “/data/local/bootanimation.zip”
#define SYSTEM_BOOTANIMATION_FILE “/system/media/bootanimation.zip”
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE “/system/media/bootanimation-encrypted.zip”

二、压缩包目录结构

|-part0
|-part1
|-desc.txt

1、关于part0和part1目录,安卓开机动画分成两个阶段(目录名字应该是可以随便命名的,在desc.txt里指定目录的名字就可以):

part0里的为第一阶段,按设定的帧率播放动画

part1为第二阶段,如果动画播放完还没启动完成,就循环播放这一段动画

2、关于desc.txt

文件内容如下:

506 505 15
p 1 0 part0 #000000 10 10
p 0 0 part1
s 1 /system/media/poweron.ogg

第一行506为动画图片的宽度,505为动画图片的高度,15为每秒播放的图片数

第二行:第二个参数为循环次数(0应该为无限循环?),第三个参数为暂时时间(不清楚具体运行原理)?,第四参数为图片目录,第五个参数为背景色,第六七参数为显示时钟的坐标,其中五六七参数可以不写

三、注意事项

1、将制作好的素材压缩时,要设置压缩率为0,即不压缩,只是打个zip包。即在winrar中压缩方式选择“存储”,在ubuntu使用zip命令的时候,加上-0选项

 Posted by on 2018-05-27
5月 252018
 

  Settings Provider是指通过如下方式设置的系统变量数据库

  Settings共有三种分类,分别如下:

  • global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;
  • system:包含各种各样的用户偏好系统设置;
  • secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。
查看某一个设置项的值:

  当我们调试时,需要查看设置里面的值,通过调试程序会比较慢,其实我们通过adb就可以查看,命令行如下:

  其中的get system可以根据设置的具体情况改成get global或者get secure

  如果返回null说明没有这个选项

设置某个项的值:

  当然我们也可以设置相关选项的值,通过put命令,示例如下:

打印某个域的所有值:

 

vlc可用模块列表

 分类:Others, Others 阅读 (2,708)  No Responses »
5月 242018
 

使用如下命令可以获取一份vlc模块列表

下面是我本地生成的:

 

 Posted by on 2018-05-24
5月 242018
 

使用protocol buffers提供的工具protoc进行编译,将proto文件生成相关的java和c++文件,命令行大致如下:

~/下载/protoc-3.2.0-linux-x86_64/bin/protoc –plugin=protoc-gen-grpc-java=/media/win150g/document/grpc/grpc-java/compiler/build/exe/java_plugin/protoc-gen-grpc-java –grpc-java_out=lite:/media/win150g/document/grpc/GrpcTestApp/app/src/main/java –plugin=protoc-gen-grpc-cpp=/media/win150g/document/grpc/grpc-cpp/grpc/bins/opt/grpc_cpp_plugin –grpc-cpp_out=./ –cpp_out=./  –java_out=/media/win150g/document/grpc/GrpcTestApp/app/src/main/java test.proto

各参数说明:

相关链接:

各种开发工具的plugin附件

grpc_ruby_plugin grpc_python_plugin grpc_php_plugin grpc_objective_c_plugin grpc_csharp_plugin  protoc-gen-grpc-java grpc_cpp_plugin

 Posted by on 2018-05-24
5月 212018
 

出现这种问题一般是没有找到libxxx.so的库,需要配置系统环境变量LIBRARY_PATH或者LD_LIBRARY_PATH

几种配置系统环境变量的方法:

1. 在命令行中使用export,如

此方法在新建命令行窗口或者切换到其他窗口后,系统环境变量就无效了

2. 在~/.bashrc或者/etc/profile中修改

vi ~/.bashrc #打开编辑bashrc文件

source ~/.bashrc #使bashrc的文件修改立即生效

此方法修改的会永乐有效

 Posted by on 2018-05-21
5月 152018
 

1. gRPC – 远程RPC框架

适用平台:c++、Java、Python、Php、Js等多平台

2. Netty -基于Java NIO client-server的网络应用框架

适用平台:Java

3. thrift – 用于可扩展的跨语言服务开发,简单来说就是RPC远程调用,它是一个完整的 RPC 框架体系。 

适用平台:Actionscript 3.0、c_glib、C++、CSharp、D、Dart、Delphi、Go、Graphviz、Haxe Framework、Haskell、Java、Javascript、Node.js、OCaml、Perl、PHP、Python、Ruby

4. SOME/IP(vsomeip) – 用于车载的远程通讯框架,特点:服务发现\带宽预留,符合autosar(汽车开放系统架构)标准.SOME/IP是指协议栈,vsomeip是用c++的实现

适用平台:C/C++

 Posted by on 2018-05-15
4月 252018
 

sockaddr和sockaddr_in两者本质上是一样的,同样的结构,同样的大小,只是sockaddr用于bind, connect时传入参数,而sockaddr_in用于设置端口信息等.所在在使用的时候两者可以互相转化.

 Posted by on 2018-04-25
4月 092018
 

疑问一:如果创建Handler没有为Handler指定Looper,那么Handler用的是哪个Looper?

答:如果没有指定Looper的话,程序会通过Looper.myLooper();来获取当前线程中保存的Looper对象.

扩展:如果一个线程中没有Looper实例,则在创建Handler时即会触发异常

疑问二:如果在程序中建立了多个Handler,都使用同一个Looper(如使用主线程的Looper),那么消息会在每个Handler中都被处理吗?

答:不会,可以看下Handler代码中,enqueueMessage函数里面,将msg.target设置为了Handler本身.而在Looper的loop函数中,是通过msg.target.dispatchMessage(msg);将消息分发出去的,所以不会造成Handler接收消息的错乱.

疑问三:一个线程能不能有多个Looper?

答:不能,Looper的构造函数是私有的,Looper只能通过它的静态方法prepare()函数来创建,这个函数会检查当前线程中是否已有Looper实例,如果已有会报异常,如果没有则创建一个新的.

疑问四:Handler内存泄漏的原理?

Handler内存泄漏是因为,如果创建非静态的内部Handler类,会隐式的持有外部类的实例,所以当Activity销毁时,Handler有未执行的消息时,就会造成内在的泄漏.

并不是有静态内部Handler类就会引起内存泄漏,假如在Activity销毁后,Handler没有继续要执行的工作,也不会造成内存泄漏。

 Posted by on 2018-04-09