编程之旅

――只为记录曾经走过的路


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404

  • 搜索
close

在Mac OS中获取和编译android源码(AOSP)

发表于 2016-08-26  |   |  阅读次数

android源码的获取和编译教程,Google官方有详细的教程,建议直接看官方教程,链接如下:
https://source.android.com/source/requirements.html

编译环境要求

先介绍下我的电脑基础环境:
1.硬件:MacBook Pro
2.系统版本:OS X EI Capitan 10.11.6

一、系统版本要求

以下是官方给出的各个android版本建议对应的系统版本:

GNU/Linux

Android 6.0 (Marshmallow) - AOSP master:Ubuntu 14.04 (Trusty)
Android 2.3.x (Gingerbread) - Android 5.x (Lollipop):Ubuntu 12.04 (Precise)
Android 1.5 (Cupcake) - Android 2.2.x (Froyo):Ubuntu 10.04 (Lucid)

Mac OS (Intel/x86)

Android 6.0 (Marshmallow) - AOSP master:Mac OS v10.10 (Yosemite) or later with Xcode 4.5.2 and Command Line Tools
Android 5.x (Lollipop):Mac OS v10.8 (Mountain Lion) with Xcode 4.5.2 and Command Line Tools
Android 4.1.x-4.3.x (Jelly Bean) - Android 4.4.x (KitKat):Mac OS v10.6 (Snow Leopard) or Mac OS X v10.7 (Lion) and Xcode 4.2 (Apple’s Developer Tools)
Android 1.5 (Cupcake) - Android 4.0.x (Ice Cream Sandwich):Mac OS v10.5 (Leopard) or Mac OS X v10.6 (Snow Leopard) and the Mac OS X v10.5 SDK

阅读全文 »

Gitlab 使用

发表于 2016-08-26  |  分类于 其他  |   |  阅读次数

一、获取项目代码

登陆之后,你会看到下图的界面。界面右边是你所参与的项目


GitLab

点击项目名称,可进入相应项目界面

阅读全文 »

dumpsys命令

发表于 2016-06-23  |  分类于 Android  |   |  阅读次数

查看dump服务

通过命令

1
adb shell dumpsys -l

可查看该机器支持的所有dump服务:

(以nexus 5 Android 6.0为例)

阅读全文 »

am命令

发表于 2016-06-23  |  分类于 Android  |   |  阅读次数

什么是am命令

am也是Android自带的一个脚本命令,位于:/system/bin/目录下,通过cat命令可查看其内容:

1
2
3
4
5
6
7
8
9
shell@M1000:/system/bin $ cat am                                               
#!/system/bin/sh
#
# Script to start "am" on the device,which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/am.jar
exec app_process $base/bin com.android.commands.am.Am "$@"

阅读全文 »

svc命令

发表于 2016-06-22  |  分类于 Android  |   |  阅读次数

什么是svc命令

svc是Android的一个脚本命令,在/system/bin目录下,我们通过cat命令可查看其详细信息:

1
2
3
4
5
6
7
caigandeMacBook-Pro:~ lcg$ adb shell cat /system/bin/svc
# Script to start "am" on the device,which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/svc.jar
exec app_process $base/bin com.android.commands.svc.Svc $*

通过-h参数可查看所有命令:

1
2
3
4
5
6
7
caigandeMacBook-Pro:~ lcg$ adb shell svc -h
Available commands:
help Show information about the subcommands
power Control the power manager
data Control mobile data connectivity
wifi Control the Wi-Fi manager
usb Control Usb state

阅读全文 »

monkey命令

发表于 2016-05-24  |  分类于 Android  |   |  阅读次数

什么是Monkey?

Monkey是我们在Android平台常用的一种压力测试方法,通过Monkey可模拟用户触摸,按键,滑动操作,常用于测试程序的稳定性。

monkey是一个shell脚本,存放于:/system/bin/monkey
使用如下命令:adb shell cat /system/bin/monkey 可以查看具体内容

1
2
3
4
5
6
7
8
9
10
lcg@lcg-work-pc:~$ adb shell cat /system/bin/monkey
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
# Script to start "monkey" on the device,which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/monkey.jar
trap "" HUP
exec app_process $base/bin com.android.commands.monkey.Monkey $*

从上面内容可以看到,执行的时:/system/framework/monkey.jar 中内容.

阅读全文 »

Android性能优化

发表于 2016-05-21  |  分类于 Android  |   |  阅读次数

内存泄漏

Java一个非常重要的优点就是垃圾回收机制,但如果使用不当的话,很容易引发内存泄漏问题。
Java内存回收机制:只有当某个对象不再引用时,它的内存才会被回收,如果某个本该被释放的
对象的引用仍然被持有时,此时内存泄漏就会发生。

引用

Java定义了四种类型的引用:

强引用(Strong)
弱引用(Weak)
软引用(Soft)
虚引用(Phantom)

强引用

最常见的一种,我们所写的代码中大部分都是强引用,如果一个对象具有强引用,那垃圾回收器绝不会回收它。如:

1
Object o = new Object();

如果该对象不再使用,需要显式将其置为null

1
o = null;

软引用

当存在足够的内存保存对象时,垃圾收集器不会回收,只有当内存不足时才会被GC回收,适合用于设计Cache。

弱引用

一旦GC的时候发现了某个对象是弱引用,就会被回收,不管现在内存是否足够;适合应用于映射,这种映射可以自动删除不再被引用的键(如WeakHashMap)
通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通常用于Debug、内存监视工具等程序中。因为这类程序一般要求即要观察到对象,又不能影响该对象正常的GC过程。

虚引用

虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。

阅读全文 »

单元测试实践-android

发表于 2016-05-19  |  分类于 Android  |   |  阅读次数

概述

单元测试是最基础的测试,有效的单元测试将直接提升产品质量。软件开发工程师应当将编写和运行测试作为开发过程的一部分,
良好的单元测试能够在开发早期发现软件缺陷,让工程师对自己写的代码感到自信。
本文将描述如何使用JUnit4框架在Android工程中进行单元测试,开发环境为Android Studio,Android中有两种单元测试:
Local Unit Tests和Instrumented Tests,Instrumented Tests依赖于设备,可进行单元、组件、界面测试,
本文重点描述如何进行本地单元测试(Local Unit Tests)。
注:文中提到的例子在Google Samples的BasicSample基础上进行了部分修改。

阅读全文 »

Android onMeasure & onLayout

发表于 2016-04-05  |  分类于 Android  |   |  阅读次数

基本概念

在android的自定义view中,onMeasure与onLayout这两个方法无疑是最重要的,只有深刻理解了这两个方法,才能写出我们自己想要的view/viewgroup

我们先看源码注释中对这两个方法的解释:
注:本文源码基于android-17

onMeasure

* <p>
* Measure the view and its content to determine the measured width and the
* measured height. This method is invoked by {@link #measure(int,int)} and
* should be overriden by subclasses to provide accurate and efficient
* measurement of their contents.
* </p>
阅读全文 »

Androi屏幕分辨率(mdpi、hdpi、xdpi、xxdpi、xxxdpi)

发表于 2016-03-17  |  分类于 Android  |   |  阅读次数

(一)基础名词

1、屏幕尺寸,屏幕分辨率与屏幕像素密度

屏幕尺寸: 就是我们通常所说的手机大小,比如iPhone6s大小为4.7寸,确切的来说这里指的是英寸(1 in ≈ 2.54 cm)
这个大小又屏幕对角线的长度确定
屏幕分辨率: 指的是屏幕纵向与横向上像素点的数量,比如1920×1080,代表的是在屏幕纵向有1920个像素点,横向有1080个像素点
屏幕像素密度: 每英寸屏幕所拥有的像素数(单位dpi)像素密度越大,显示画面细节就越丰富,也就是我们通常所说的屏幕越清晰
计算公式:dpi =√(widthPx^2 + heightPx^2) / 屏幕尺寸


计算公式

阅读全文 »
12
Talent Lo

Talent Lo

15 日志
2 分类
8 标签
RSS
GitHub 微博
Links
© 2015 - 2016 Talent Lo 粤ICP备15071430号
由 Hexo 强力驱动
主题 - NexT.Mist