1. 实现listView, scroolView的iphone风格的边缘拖动效果:
滚动视图ScrollView与ListView是两个平级视图, 在拖动超出边界时, 都会调用View的overScrollBy()方法, 这个方法设置了纵向滚动的上限为0, 若是不设置这个上限, Listview就会从顶部拖动下来. 第二个问题, 回滚动画如何改, 对于ScrollView, 这个android已经作好了, 对于ListView, 涉及到抬起时的速度, 在onTouchEvent()方法中, 若是速度为0, 会走TOUCH_MODE_OVERSCROLL模式, 若是速度不为0, 会走TOUCH_MODE_SCROLL模式, 速度为0时, 是好的, 速度不为0时, 会走到TOUCH_MODE_SCROLL模式中的另外一个判断分支, 把这个判断分支改为须要的滚动动画, 即TOUCH_MODE_OVERSCROLL部分的代码搬过来.
ListView中的mEdgeGlowTop 是边缘效果动画, 把draw方法直接返回, 由此去掉边缘模糊效果. java
2. 框架层分开资源
将res/res/values/public.xml中的相应组里面, 按数字递增添加资源项, 而后make update-api, 以后在应用中@android:drawable/id来引用新加资源. 对于分开资源的提交, 要将make update-api生成的current.txt提交上.
3. 账户问题
添加账户的服务在manifest.xml中要有
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticatora" />
authenticatora.xml文件中帐户名字必须与服务代码中账户名字相同. 不然报进程id错误.
若是两个服务添加了相名的帐户, 也会报进程id错误.
服务调用AccountManager的addAccount.
把添加账户的服务作一个独立的应用的好处是, 若是把这个任务放在通信录中, 每次push通信录时, 就要重启手机, 才能添加sim卡账户, 在某个应用中, 若是找不到添加账户的时机, 就把这个放在独立的应用中, 能够解决没必要重启就可验证. linux
4. scroolView的fillViewport
android:fillViewport="true" 若是android:layout_height设置为具体的高度或撑满, 则scroolview中只能显示一个view. android
若是scroolView中只有一个view, 这个view要撑满整个scroolView, 只将这个view设置不match_parent, 是不够的, 还要将fillViewport属性设置为true. git
5. 电话拨号盘的翻转动画,
先翻转90度, 动画结束时调用监听动画结束的监听器, 该监听器将已经翻转的view1设为隐藏, 把将要显示的view2设为可见, 而后对view2翻转90度, 在view2的动画结束监听器中要将view1与view2都旋转到0度, 这样下次能够正常显示. 而且对界面进行状态更新.shell
6. 对话框与提示对话框
对话框为Dialog类, 提示对话框为AlertDialog.
Dialog类能够设置为占满整个屏幕. 代码简洁明了:
dialog = new Dialog(context, android.R.style.Theme_Translucent_NoTitleBar);
View v = LayoutInflater.from(context).inflate(R.layout.device_dialog, null);
((TextView)v.findViewById(R.id.device_number)).setText(deviceId.toString()); // deviceId.toString());
dialog.setContentView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
dialog.show();
能够设置标志来设置触摸方式等.编程
7. git pull(或git push)时, 出现输入密码问题
有一个缘由是运行了ssh-keygen, 覆盖了原有的认证文件id_rsa.pub, 即服务器不认这个认证文件, 因此要找回原有的认证, 还好, 在gitolite/keydir目录有这个认证文件, 把这个文件覆盖认证文件id_rsa.pub, 这时输入密码, 就可正常从服务器下载代码了, 但还有个问题, 每次要输入密码, 这是由于认证文件比服务器上的新, 即然能够正常提交到服务器, 加一个gitolite-admin的管理用户ligang, 在ligang这个用户上, 改变gitserver用户的认证文件, ubuntu
8. 管理用户最好不要只用一个, 万一那个挂了, 就很差恢复了, 因此最好用两个管理用户. 即:
repo gitolite-admin
RW+ = gitserver ligangvim
9. ListView属性
ListView滚动条放在外侧, android:scrollbarStyle="outsideOverlay"
拖动时, 上方无分隔线: android:divider="@null"windows
10.显示信息的多用
Intent.ACTION_VIEW,
而后putextra格式化数据,找到目标intent
11.ListView加footerview
若是加一两次footerview,则第一次加的footerview是不可见的。设计模式
12.列表项的分组栏
设计思路:每一个列表项视图都有一个分组栏,若是该列表项是首字母相同的一组列表项中的第一项,就将该分组栏显示出来,若是不是第一项,就将分组栏隐藏。因此咱们的目标就演变为bindView中的position所指定的那个数据项是否为首字母相同的一组列表项中的第一项。
为了上面这个判断,就有字母索引类。字母索引类中有一个字母索引数组,那么如今有两个数组,一个字母索引数组, 一个是列表数组,两个数组存在对应关系,即列表数组中的首字母相同的多个元素对应字母索引数组中的一个元素,即多对一的对应关系,因为最终目的是为了肯定分组栏在列表中出现的位置,因此这个对应关系就应是一种位置对应关系,即列表数组的元素的位置与字母索引数组中元素的位置的对应关系,列表数组的元素的位置用position表示,字母索引数组中元素的位置用section表示,字母索引类提供了两个重要的方法,
1:输入数据数组中数据项的位置positon, 可返回索引数组中索引项的位置section, 方法名为getSectionForPosition();
2: 输入索引数组中索引项的位置section,可返回数据数组中数据项的位置position, 方法名为getPositionForSection(),注意这里position是数据数组中首字母相同的那一组数据中的第一数据的位置。
咱们的目标就是在bindView中判断当前数组项的position是否是让分组栏显现出来,因为是多对一的关系,若是position对的section所对应的position1与postion相等,则该position的view就可以让分组栏显示出来。
ContactsSectionIndexer()构造方法中,
counts[]数组中的第i元素的值是以首字母相同为一组的分隔方法的第i组中成员的个数。
13 由数字获取字符串
String.valueOf
14 日志的重要
代码最好打上有价值的日志,一是为了从此查找容易。
例如Listview由于没有找上日志,以后查找很不方便。
zhuo而不群
15 framework-res
framework资源编译问题,res编过以后,要在res模块下,要mm snod, 而且相应的模块也要mm snod编进映像文件,如policy使用该资源,则在policy下mm snod.
16 提交新库
因为从google或高通下来的代码是190多个仓库的集合,这190多个仓库的每一个仓库下都有一个.gitigore文件,这些都是生成文件,不该把生成文件下到本地,若是把生成文件下到本地,会影响make编译,因此不能所已经编译过的版本提交,万全之策就是,把.repo目录,.git目录,.gitignore文件都删除掉,而后把vendor目录须要添加进来的文件拷进来,这时,不要编译,提交就能够了。这时不会有生成文件。
被版本提交后,不要当即发布,即不要告诉同事下载,先本身下载下来,而后编译,看可否经过,不能过就要本身改好提交,直到经过再发布,不能把可能有错误的版本发布。
17 编译开关项问题
高通把代码放在vendor目录下,这些vendor下的模块目录是否能被编译到android工程下的build/core/buildplus/namespace/name.ini的开关项决定的,编译时出错,没有找到的目录文件,应该把相关的编译开关关掉,那么如何找到这个编译开关呢,到build目录下,在全部文件中搜索编译时找不到的那个目录名。此次新的基线一直没编过,就是由于阿拉伯语的那个模块编译开关问题。像高通这样的公司发布出来的代码不该出现编不过的问题,若是编不过,最多也是编译开关的问题。这个要确信的。这个要信的。有这个信的基础,就能把握好思考的方向。
18 把文件保存到网络的博客上,本身的计算机是不可靠的,总会有意外的问题,之前在学校里,在工做中写的文档,没有保存到网络上的,基本都丢失了。
19 apt-get
查询能够用apt已安装或能够安装但未能安装的软件,命令为:
sudo apt-cache search vim
20 把U盘制做成启动U盘或启动光盘
1).在系统->系统管理->启动盘建立 便可建立启动U盘,
2).用unetbootin命令建立启动光盘,英文名叫LiveCD. 可理解为模拟光盘。 unetbootin会弹出图形界面。
虽然启动U盘与启动光盘均可以试用Ubuntu系统,即不安装便可使用,但区别在于,若是原系统的文件系统已经破坏,启动u盘是没法进入试用系统的,但启动光盘能够。昨天遇到一个问题,在ubuntu系统关机过程当中,掉电,致使linux文件系统被破坏,解决办法:进入ubuntu试用系统,修复文件系统。
21 检查并修复文件系统
e2fsck是ext2 filesystem check的简写,不过功能被扩展了,即检查并修复ext2,或ext3文件系统的硬盘分区。 关机过程当中掉电,文件系统被破坏,能够用此命令修复,命令以下:
先用sudo fdisk -l 找到须要修复的硬盘分区,在这里为/dev/sda7
再用sudo e2fsck -f -y -v /dev/sda7 来修复这个文件系统。
22
与启动光盘的区别是
windowsPE, LinuxPE
23 查找android代码
在AndroidManifest.xml 中找比较合适
24 代码中调整布局
代码中的布局类型应是该view所在容器的布局类型
25 弹出9格数字输入键盘
android:inputType="phone"
不少时间在查找上。若是不集中精力,找的感受很很差
26 如何从技术上提高智慧
技术理解透的标准是,演讲能让外行人也能理解听明白技术的思想,这须要一技术功底深厚,这须要作技术时,看代码时,能看到做者的意图,从更全局的范围来看,能看出总体思想,二是文学功底深厚, 这要求在学校中,在10几岁到20几岁努力提升文学功底,能过写真情实感的文章,提升对文字的运用能力,技术的真正提升就是智慧的提升,包括领悟力,文字运用能力,技术对思惟的锻炼是很好的机会。去高通培训时,看看人家对文字的运用,这些简短有力的话记下来,之后本身也常常说这样的话:
常见的场景
很是的细致
重点给你们握一下
了解个大概
比较大的帮助
客户有个初步的分析
基本流程
技术实力大有长进
经过解问题把问题理解透
QMI是AT的改进
五六年前就有这个东西了
对外界打交道就要作个接口
新的feature
信息头,信息尾,检验合, 这种计算效率比较低
没有关系, 彻底独立
电脑与USB链接在一块儿, 一种是AT, 一种是QMI, 把DataCore创建起来,
这个是背景
架构:
作完以后,返回一个回应
基本模型
第一代手工编解码
服务愈来愈多,
不少中间层抽象出来
全部的所有封装好
改的太大,总有一个die代的过程,
有个风险
已经稳定了,不想再重构
旧的代码已经稳定了,就用不新架构了,新的代码能够用新架构。
生成的方式不一样,但最终发出的东西都同样
从目前获得的客户需求,
风险的话,08年09年都是手工编解码
看消息的个数
dataservice与内核打交道,就用特别的模块来控制
不一样的服务用不一样的路过去
根据id,最终决定调哪一个接口
不会有取代的关系
现有的,稳定的就不动了
须要串行,处理一个后,才能处理下一个,若是并行,modem有消息个数的上限,
若是某个事情处理的慢,就开个线程,不然后面的就走不动了
qcril不作具体的事情,只是消息的分发,根据表,派发到哪一个函数,最后调用一个真正干活的函数
(看到妙相,不能认真,一概不往内心去,前生与此生都是梦)
底层是彻底异步的,上层经过逻辑能够是同步,也能够是异步
看几个线程
init_thread, 有个保护的做用,初始化失败,打电话那边什么都作不了,因此初始化失败,init_thread每隔5秒再从新初始化,直到成功。
flow_control 流控,命令之间串行。若是命令个数超出flow_control的缓存上限,底层直接返回超出错误
若是串行,那怎么串
若是存在这样的需求,设计也应知足这个需求,qcril为了知足不少需求,已经设计的很复杂了。
继续日后走
QMUX SERVER, 起几个socket,socket连好以后,就能够发消息了,
qmi_core_init完成各个server的回调注册,上电后,就必须完成这个回调注册的初始化,若是基本的没完成,后面斥不用谈了
回调函数便是事件的入口函数,注册回调函数就是配置入口函数,每一个服务都响应一些事件的,因此都有回调函数。
核心内容,上电以后,注册回调函数
框架不作具体的事情,来一个事件,调用回调函数去作具体的事情,这样看代码会更明了
Log: 看什么样的关键字,卡到哪里,哪里失败。
这个大的流程,是个总提纲,包括不少流程
经过看Log看流程状态是如何切换过来的,流程的变迁。
看pdu, 每一个消息都能有个字段,
作完这一切,poweroff就完成了, UI那边也会有显示
ril是有不少状态,搜一下关键字,就能知道状态如何切换的
码流:qcril发出的消息送到qmi通道,在这个通道中,消息就是码流了,即一串十六进数,经过规格说明书,一个一个去对,就能手工解码出码流的字符串,高通的看日志工具QDXM能够自动解码,左边是十六进制码流,右边是解出来的字符串。
一对就知道了
解码时,还有大小端问题,
致使。。。。
RPC也是这么干的
大量消息用idl生成,idl生成消息的.c与.h文件, idl相似于xml的脚本,消息进入qmi通道,在通道中,便是码流,码流是十六进数,QDXM工具便可解码,将将十六进制数解析为字符串。
思路的原型可称为思想,讲要讲出思想来,若讲不出思想,就等于没掌握,没领悟,句子要短,这两个要求技术功底深厚, 文字功底深厚,把它说出来,就等于把它给破了。
要讲话,就要讲出为何,眼睛要看观众,古代文hao,出口成zhang.
工做量在这里,
不跟上基线
50的基线,咱们没有充分测过。
果里含藏着因
若配错,致使后面的脚本错误,但keng定能打电话,稳不稳定,我不能说。
一上
1x, evdo 掉到1x时,1x上网时,就上不了电话。
一个modem不能两个同时都作。
这个流程很细,用到的时候再来查
qmi是共用的模块,很是简单的描述。
AP这边,有不少码流
27 eclipse
若在文件夹中删除文件夹,则eclipse打不开
一微尘有一佛刹,特斯拉也说一小部分就有yuzhou的所有信息。
28 listview: 使顶部滑动时,无间隔
android:clipToPadding="false"
29 dalvik
android的java仍是不一样于常规意义上的java,缘由是二者的虚拟机不同,dalvik虚拟机基于寄存器,运行文件是dex格式的, java虚拟机基于栈,运行文件是class格式的。android工程编译过程为java代码通过常规java工具编译成class格式字节码文件, 而后由dex格式文件转换为dex格式文件,资源文件由aapt工具编译,最后将dex文件与aapt编译后的文件合成apk包,zogate进程为应用fork一个进程,zogate进程由init启动,是和ril进程同样都属于用户进程。
30 eclipse
若一个eclipse工程的.project等配置文件被删除,则启动重启eclipse后,
31 android对程序的效率有更高的要求
配置在高的手机也没有一个普通电脑速度快,在嵌入式机器上编程,对程序的效率有更高的要求,尽可能少分配对象,尽可能不能成员变量,不用getter方法,
32 user版本
user版本,在adb shell下,不能浏览目录,也不能adb push文件。
委托他人办事以前,本身必须先把信息搜集好,把事情的各方面信息向委托人都交待清楚。
一个充分而简短的说明。
33 unetbootin
unetbootin 弹出界面, 选发布版本, 这个与当前用的系统有关, 若是当前是10.04, 则只能有10.04,(选10.04 Live , live表光盘) 若是当前是11.04, 则有11.04, 在文件系统须要修复的状况下,10.04版不能使用试用版本. 11.04能够. 对于修复文件, 要试用当前系统必须是11.04, iso选11.04的, 这样才可试用引用系统.
34 版本稳定
ubuntu, 10.04, 11.04是稳定版本, 11.10, 12.04是不稳定版本
35 sysfs
是专门描述设备的文件系统, 在系统启动以后, 创建在内存中, 有类, 总线等组织方式, 基本的类是kobject, 其余的设备类都要继承这个类, C语言经过包含来实现继承关系
36 分别32位与64位
四核机器必定是64位的, 64位机能够装32位系统,
$getconf LONG_BIT 是看32位仍是64位.
37 android整个断点调试
断点能够看到函数栈调用状况, 变量中的值, 能够省去不少Log, 不用打那么多log, 看变量的值.
在eclipse, 进ddms, 菜单 run->debug configurations (看清了, 是debug configuraton, 不是 run configuration)->remote java application . 端口选8700. apply, 关闭对话框, 光标选在要调试的进程, 按F11. 便可, 一次只能调试一个进程.
颜色设置在 选项中过滤出color, 在text editors -> annotations 节点的右边. debug current instruction pointer 和 debug in stack .
能够把可个android, 框架层的代码调用关系都能找到, 找到其根源zygoteinit.main(), 最开始的调用处, 省去不少查找.
不行就把机器重启一下
能够调试sytem process , 如电源键响应phonewindowManager中设断点
学道之人
<我想让开发者看到什么>
新闻是统治者让我特地看到的, 看了以后, 心智受影响,
38 硬件
大电流问题, 拥入耳机发生大电流,
高通的配置很好, 1.2G 而市面上1G,
看哪芯片短路, 边看原理, 把关注的点成白色的, 而后用万用表量看是否短路
39 好程序
不出现异常, 进入时间短, 占用内存小
40 使用高通平台的chang商
华为, 联通, 都用高通7625a, 占据低端市场.
天宇出货8225a,
高通有不少chang商, 小mi,
8260是s3系列的!45NM技术!A8架构.双核1.2-1.5GHZ!GPU是220的!表明做是小米M1.1.5GHZ
8225是高通最新s4系列的产品!高通S4骁龙总共四种处理器!而8225是做为这个系列的低端产品诞生的!采用的也是45NM技术!其余三种都是28NM技术!A5架构!性能低于A8的!双核1GHZ的性能.GPU203的!表明做北斗星小辣椒!未上市!
从这些高通官网公布的数据显示!8225没有任何性能高于8260处理器!虽然是S4系列!可是是做为入门级处理器诞生的!目的是抢占低端市场!现阶段根本算不上主流!
8260是高端机用的芯片,好比htc one x,lumia920用的都是8x60的芯片,区别只是支持的网络不一样而已,
a8架构:
ARM公司日前发布最新的Cortex-A8处理器,它将给消费和低功耗移动产品带来重大变革,使得最终用户能够享受到更高水准的娱乐和创新。在于美国加州举行的第二届ARM开发者年度大会上发布的ARM Cortex-A8处理器最高能达到2000DMIPS,使它成为运行多通道视频、音频和游戏应用的要求愈来愈高的消费产品的最佳选择。在65纳米工艺下,ARM Cortex-A8处理器的功耗不到300毫瓦,可以提供业界领先的性能和功耗效率。ARM Cortex-A8处理器第一次为低费用、高容量的产品带来了台式机级别的性能。 支持智能能源管理(Intelligent Energy Manger,IEM)技术的ARM Artisan库以及先进的泄漏控制技术使得Cortex-A8处理器实现了非凡的速度和功耗效率。Cortex-A8处理器获得了大量ARM技术的支持,从而可以实现快速的系统设计。
应熟悉智能手机的芯片商,
41 示例query
queryHandler.startQuery(1, null, Phone.CONTENT_URI, PROJECTION_PHONE, "REPLACE(" + Phone.NUMBER + ", '-', '') LIKE '%" + mDigits.getText().toString() + "%'", null, null);
42 双系统安装
开始可选英文安装, 可避免上网下载,
若是把双系统中的ubuntu替代, 将Linux盘都格式化, 再安, 仍是出问题.
43 netubootin
有Linux版, 和windows盘, 都是将u盘制做为启动光盘
44 bootloader
台式机bootloader为grub, 高通平台bootloader为lk, bootloader和kernel 编译后, 和并为境像文件boot.img, 只有4M多, 而操做系统system.img.ext4 有150M
45 hal
google应硬件厂商不公开硬件厂商驱动代码的要求, 设计了hal,
46 sdcard资源文件特殊名目录
sdcard卡上ringtonge在设置来电铃声列表里就可看到, 同理闹钟铃声在sdcard卡的alarms目录, 通知铃声在sdcard卡的notifications目录
联通上网比较快的.
限你一小时把问题解完
限你一小时写一篇技术总结文章
47 建造者设计模式
48 通信录
模式 : 列表有不少模式
49 我的电脑问题
开机时, 若是没有di的一声, 说明内存chao老化, 插另外一个内存chao便可, 若是有di的一声, 可是屏幕一直黑屏或提示readerror, 说明硬盘没有插好, 机箱最好不要插新硬盘, 有时使接口不稳定, 保存到我的电脑或U盘的东西都是靠不住的, 三年研究生作的ppt都没了, 就说明了这点, 只有那些保存在网上的还在. 一个是网易的网盘中, 一个cnblogs博客中. 我的写总结, 尽可能用简单的记事本, 最有价值的就是本身写下的这一行一行文字, 多写, 写的越多, 长进越大, 一开始只有一个小的想法, 随着写的愈来愈多, 想法会愈来愈成熟, 之前写binder的时候, 写状态栏的
另外从风水学角度来讲,床头最好别挂字,背着字,走背字!
50 天天发一版本软件, 之后出现问题, 不容易排查出哪一个版本出现开始出现问题.
51 sysfs
52 linux c 要点
为了不溢出, 要用UL为单位, U表示无符号, 比有符号绝对值大二倍
?: 这样的判断比if then else, 由编译器产生更优化的代码
在宏中,要把各参数当心的括起来, 以防止
53 gitolite
对于用户的认证文件用专门的仓库管理。
54 高通不识卡的缘由: nv 里面的 efs , 那两个文件删除掉这两个文件, 就可识卡。 这不识卡问题纠结了好几天
外lian一层pi, 内lian一口气,
55 kmalloc
kmalloc 分配链接的空间, kmalloc基于以而为单位的slab机制, 虽然slab以页为单位组织, 而kmalloc单位是字节.
get_free_pages() 也分配连续的空间, 以页为单位.
linux gcc 中的sleep()传入的是秒,usleep()传入的微秒。
56 __user
xxxx 会去调用 __xxxx
//他方之石
通常有几种状况要分开写
一、
xxxx 是统一的接口,而__xxxx 是具体cpu架构下的实现,极可能有多个__xxxx,固然最终只有一个__xxxx被编译
二、xxxx 检验一下参数或加保护后调__xxxx ,这相似一种编码习惯,能减小bug
三、xxxx的参数或返回值有有更改,为了低版本的代码不用修改,实现一个__xxxx作过渡。
没有定发,也没有什么难度,看代码就知道了
//他方之石结束
57 lk
stage1 用汇编作一些cpu, 中断初始化,准备好一个基本的环境,最后bl到C语言的kmain入口函数,
作硬件初始化, 准备ram空间, 设置堆栈, 转入stage2 入口
stage2 即kmain作线种,板子的初始化, 最后线程idle.
检测内存映射, 把映像文件从flash拷到内存, 设置内核启动参数
58 arm
c13是堆栈指针寄存器,即调用函数时,要把参数堆栈到一块空间,c13存放的就是该空间的地址
c14是连接寄存器,在调用函数时,将当前指令地址存到这个地址中,当函数结束后,从连接取出以前存放地址,继续向下执行
c15被叫作程序计数器,存放下一条指令的地址。
cpsr为current program status register, 即当前程序状态寄存器
必定要尽量多的写, 不能等想成熟了再写,不然会失去不少领悟力的锻炼时间,you其在比较吵乱的环境中, 写能够把精力集中. 写便是领悟的过程, 技术之后若没用到,但依此锻炼的文字能力和领悟力的锻炼,是无时不ke的受用, 刚才感受了一下, 只有本身亲手写下来的文字,以后才能回忆其含义时,能够很清晰, 有种保证说出来的绝对正确的感受.
想起一句就写一句, 想起两句就写两句, 不能等, 等会等没的.
忍他,让他,避他, 几十年后,你再看他.
我得感谢他, 让他有了学习bootloader的勇气.
要想写的好, 写的更让人读的明白chang快, 就要把语法淡忘, 还要适当的重复,
写做, 收获就在当下.
一条arm指令, 对应的机器码, 就是32位二进制数, 这32位中, 划分为几个部分, 表示指令的, 表示源寄存器的, 表示目标寄存器的, 表示操做数的.
59 sysfs
proc 是专门为进程使用的设备信息, 因为设计上不如sysfs清晰, 在设备驱动上, 被sysfs taotai
sysfs 把设备和总线组织成文件, 这些文件能够被用户空间读和写, 看一个原理, 先从它的对外特性来看, 即它的使用场合, 或者说它是怎么被使用的, 把这个道理应用到这里, 就是看/sys这个目录,
8000年后, 这个世界的人类就要被毁灭,
当年, 菩萨的因地修行时, 处在幻境时, 也是感到同样的真实, 真实度同样这么高.
bootloader 做用就是加载操做系统, 从硬盘加载到内存.
arm中指令加载, 即ldr, 指把数据从内存拷到寄存器, 相反即存储, 即str, 从寄存器到内存
60 分区出错
android工程中, /system/vold/cryptf.c 中若是分区损坏, 则写入将vold.encrypt_progress写为error_partially_encrypted,
61 Linux用户空间的api
这些api用man可查看, 驱动用的像request_irq用man查不到.
wine上的soureinsight和windows下的同样好用. vi的好处可能就sheng下远程登陆
snprintf(指针, 字符个数n, "格式化的字符串", 可变参数1...) 把第三个参数的字符串拷到指针指向的内存区域, 字符个数包括了字符串结束符'\0', 即格式化字符串的前n-1个拷过去, 示例:
char n1[100];
snprintf(n1, 15, "abc%d%s", 1, "efg");
printf("\n n1 : %s \n", n1);
运行结果为: abc1efg
写做真到集中精力.
62 goole搜索不一样百度搜索以外
google可搜索文件类型, 如snprintf.c filetype:c
63 ext4文件系统, 恢复被rm删除的文件1. $sudo aptitude install e2fsprogs e2fslibs-dev2. 安装extundelete, 3. $extundelete /dev/sda3 --restore-all , 把要恢复好的放在当前目录下, 并非全部都能恢复若是ext3被格式化成windows下的文件系统, 则不能恢复. 在windows64 qcrilsolited是应用层发起, unsolieted是modeme发起android系统包括内核空间, c用户空间(如rild进程), Java用户空间(如框架层, )ril基本框架在hardwareh目录下, , 而手机分为android侧, modem侧, 每一侧各占一个cpu, 形容封装的好, 封装的很好, 两行代码就能调用远程功能65 qpst 烧modem 菜单start clinent -> 选download -> 选multi-image(第四个标签) -> 选发布版的modem目录. 点download66 右键解压不了的, 用tar zxvf 能够解压好