0%

  一直比较好奇,Android的电量是怎么计算出来的,今天就借用qualcomm平台的8916芯片研究了一下,因为其不带电量计,所以是通过一个bms系统计算出来的,下面就来详细分析一下计算方法。

SOC(state of charge 荷电状态 - 电量)

英文缩写:
FCC  Full-charge capacity
RC   Remaining capacity (剩余电量)
CC   Coulumb counter
UUC  Unusable capacity
RUC  Remaining usable capacity
SoC  State of charge
OCV  Open circuit voltage

Read more »

为了方便调试,不用每写一个类都需要写一个main方法对其测试,所以Java编写会经常用到JUnit测试。

新建一个JUnit.test测试包,如下图:

new

JUnit测试

可以在原文件类的方法上面加上@Test作为JUnit测试单元运行,也可以新建JUnit文件测试,编写方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class PersonTest {

@BeforeClass // 测试类加载之前运行
public static void setUpBeforeClass() throws Exception {
System.out.println("Before");
}

@Before // 每个测试方法运行前运行, 常用
public void setUp() throws Exception {
System.out.println("所有的测试方法运行之前运行!!");
}

@Test // 注解,给程序看
public void testEat(){

cn.itcast.Person p = new cn.itcast.Person();
p.eat();

}

@Test
public void testRun(){
cn.itcast.Person p = new cn.itcast.Person();
p.run();
}

@After // 每个测试方法运行后运行 ,常用
public void tearDown() throws Exception {
System.out.println("所有的测试方法运行之后运行!!");
}

@AfterClass //测试类加载之后运行
public static void tearDownAfterClass() throws Exception {
System.out.println("After");
}

运行JUnit

可以单独运行某个测试方法,也可以选中类,运行所以的测试方法,如下图:
run

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束,常用的约束技术:
 1. XML DTD
 2. XML Schema

#DTD

##DTD格式
DTD(Document Type Definition),全称为文档类型定义。 DTD文件应使用UTF-8或Unicode。格式如下:
 
###外部文件

 

#PCDATA:放置字符数据 

Read more »

XML 是有w3c组织发布的一种可扩展标记语言(Extensible Markup Language)。

##XML 的常见应用

XML常见的应用场景:  

  1. XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
  2. 在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定
     
    例如一个软件在启动时,它需要启动A、B两个模块,而A、B这两个模块在启动时,又分别需要A1、A2和B1、B2模块的支持,为了准确描述这种关系,此时使用XML文件最为合适不过。

##XML的语法

###文档的声明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="GB2312"  standalone="yes" ?>
encoding - 文档的字符编码。(代码里面写什么格式,一般就将文档存为什么格式,一般通用“UTF-8”)
standalone - 文档是否为独立的,有依赖
```
###元素

元素指XML中的标签,可以嵌套,只有一个主标签,两种书写方式如下:
•包含标签体:<a>www.itcast.cn</a>
•不含标签体的:<a></a>, 简写为:<a/>

###属性
属性值必须用""'' 引起来,如:
```bash
<input name=“text”>
也可以:(XML将空格也当做内容,不过现在浏览器都会执行处理,调用trim())
<input>
<name>text</name>
</input>

###注释
<!–注释–> // 注释语句必须写在XML声明语句后面

###CDATA区

CDATA(character data)区用于让解析引擎不对其进行处理,按照原始内容显示.

1
2
3
4
5
6
7
格式:<![CDATA[ 内容 ]]>
eg:
<![CDATA[
<itcast>
<br/>
</itcast>
]]>

###转义字符
escape
###处理指令

处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。

处理指令必须以“”作为结尾,XML声明语句就是最常见的一种处理指令。

  或许我是一个geek范的人,又或许是想显得很有逼格, whatever, 反正我就喜欢Linux的命令行,喜欢黑黑的geek风,这样完全体现出了技术的酷炫。现将一些自己觉得很有用能让自己显得很牛的装X快捷键和指令总结如下,其中有一部分相当有用,使用后逼格瞬间提升,不信看文章最后的后记。

Shell终端常用快捷键

  当进行命令行操作时,使用快捷键将极大提高工作效率,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Ctrl + U – 剪切光标前的内容
Ctrl + K – 剪切光标至行末的内容
Ctrl + Y – 粘贴
Ctrl + E – 移动光标到行末
Ctrl + A – 移动光标到行首
ALT + F – 跳向下一个空格
ALT + B – 跳回上一个空格
ALT + Backspace – 删除前一个单词
Ctrl + W – 剪切光标前一个单词
Ctrl + Insert – 复制
Shift + Insert – 粘贴
# 下面两个命令的用法,如: 在shell终端输入vi main.c进入vi界面后,想切换到命令行,可以通过Ctrl+Z
Ctrl + Z – 暂停应用程序
fg – 重新将程序唤到前台
Read more »

  我这里想谈的是关于技术等方面学习的阅读. 不知道其他人怎么样,关于我一直以来总是有一个错误的方法去阅读书籍.  

  从初中伊始,我对于学习就有了一个错误的想法:想一步步的认真学好每个知识点,掌握每个知识点;因为这个想法让我一直学得很累.当我上了大学后,开始接触单片机、c语言、PCB等新鲜而有趣的知识,但是我还是秉承着错误的学习方法。所以在大学阶段虽然自己很认真的在学习,可是最终发现这样效果并不好,反而在一直消磨着自己的兴趣。这一度都让我怀疑自己的能力。不过幸好,我一直没有放弃,一直在坚持学习,直到后面学习Linux、Java及Android之后,终于深刻意识到自己之前的错误方法。  

Read more »

  注释一直是编程最重要的部分之一,学习Java很长一段时间了,由于之前一直没有很正式的写过项目,所以一直也就没怎么认真的写过注释.因为注释又是如此的重要,所以今天对Java的注释规范加以总结,也促使自己以后写代码注意注释.

注释的地方

  1. 每个源文件开头应该有一段注释,介绍代码的作者\时间等信息.
  2. 当代码比较长,嵌套较深时,应该在某些花括号末尾注明花括号对应的起点.
  3. 重要的属性需要添加注释,每个方法需要添加注释.
  4. 典型的算法等需要特别注意的地方需要添加注释.
  5. 有bug的地方需要加以注释,修改过的代码需要加修改标志注释.
Read more »

  基于Hexo和Github的个人博客构建,我参照hexo你的博客hexo官方文档github官方文档完成了自己的个人blog。通过前段时间学习Android和这些天build自己的github、个人blog,关于学习新东西有一个新的体会,就是官方文档和帮助是最好的资料,虽然是英文的,但是看官方的源文档能提升自己的效率。

现在写博客只需要几个简单的命令就能完成发布了.

1
2
3
4
5
6
$ hexo new "My New Post"
$ hexo generat
$ hexo deploy
也可以直接简写为:
$ hexo n "My New Post"
$ hexo d -g
Read more »