android_总结2




  组内开站会,较大组开周会;bug修改的追踪;二选一或者三选一模式;

  Framework虽然是android的内核,但其内部也包含一个应用程序,system_process,对应TCP端口号为8600,
  引入了特别的类,不采用run/debug;使用$make Contacts的命令编译出apk。
  在Logger驱动程序模块中,定义了log_main、log_events和log_radio三个日志缓冲区,分别对应三个设备文件/dev/log/main、/dev/log/events和/dev/log/radio。
  log总结:首先是从应用程序层调用framework的Java接口,framework的Java接口通过调用本层的JNI方法进入到系统运行库层的C接口,系统运行库层的C接口通过设备文件来访问内核空间层的Logger驱动程序。这是一个典型的调用过程,很好地诠释Android的系统架构。
  函数调用log_writev来实现Log的写入,注意,这里通过一个循环来写入Log,直到写入成功为止。
  Android系统中,提供了一个轻量级的日志系统,这个日志系统是以驱动程序的形式实现在内核空间的,而在用户空间分别提供了Java接口和C/C++接口来使用这个日志系统,取决于你编写的是Android应用程序还是系统组件。
  trim() 功能:去掉字符串首尾空格,防止不必要的空格导致错误。
  重启QQ出现(由于文件读取出错,暂时无法完成登录,请稍后再试。)-- $ ps -e|grep QQ    $ sudo kill pid  
  logcat不显示log:eclipse->windows->show view->Devices->点一下debug
  Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;  
  cache与buffer,cache是加速读,buufer是加速写。
  Service-->ContextWrapper-->Context
  Activity-->ContextThemeWrapper-->ContextWrapper-->Context
  720p屏幕的手机会优先使用xhdpi,大部分老机子都是480p的,这些机子不支持xhdpi,默认是hdpi优先
  GPL,是General Public License的缩写,是一份GNU通用公共授权。它并非由自由软件基金会所发表。
  由于JDK7、OpenJDK和IcedTea都是并行发展的。
  Sun Microsystems于8月9日宣布为JCK(Java Compatibility Kit――Java兼容性工具包)发布一个新的许可证版本。这个特别拟定的 OpenJDK社区TCK许可证(OpenJDK Community TCK License)――正如其名字所暗示的――被设计成方便OpenJDK社区更宽松地访问JCK,因而确保了与Java标准保持一致。按照Apache的说法,这一协定应该约束参与者只能在非限制许可下分发技术兼容工具包(technology compatibility kits――TCK)。   
  BusyBox是一个集成了一百多个最常用linux命令和工具的软件。
  一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
  刷机:同时按住下音量下键 + HOME键 + 电源键,等待3秒;再按音量上键,进入界面为绿色机器人,此为刷机模式
  Odin:一款用于手机刷机的软件。在手机关机的状态下通过组合键(不同机型组合键不同)使手机进入刷机模式,然后用odin软件选择对应机型的ops文件,再选择固件包(one package或者单包)即可开始刷机.
  ODEX是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个.dex文件单独存放,原APK中的classes.dex文件会保留。Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过Odex也有缺点,那就是有时候加刷东西会出现问题。
  涛:我觉得android的基本构架和源码还是有必要了解和学习的,对做app也有帮助。以前是做本地图库的,现在做云相册。  
  设置view的样式:  style="@style/TextAppearance.EditEvent_Spinner"  
  Eclipse设置软tab(用4个空格字符代替):Window->PreferencesGeneral->Editors->Text Editors->在右侧找到Displayed tab width:把下面的“Insert spaces for tabs” 勾选上,点OK保存之后,新建一个html文件输入几个tab键并按左右方向键移动光标测试一下。
  针对java文件配置softtab,打开左侧菜单:Java->Code Style->Formatter,然后点击Active profile中的Edit按钮,在弹出的窗口中,选择General settings中的Tab policy为Spaces only,然后右边选择 Edit...按钮,在General Settings页中 Tab policy 右边的下拉框,选择Space only!然后下面的Indentation size 和 Tab size 都设置成你要的空格数即可!一般是4个空格!!修改Profile name然后保存即可。
  Unix下UTF-8格式的文件头中是不包含BOM标识的,而Window模式下的UTF-8文件头中是包含了BOM标识的。
  aapt(Android Asset Package Tool)Android资源打包工具。
  bugreport里面包含了各类log信息,大多数log也可以经由过程直接运行相干的法度来直接获得。例如:内存应用/proc/meminfo;CPU应用/system/bin/top -n 1 -d 1 -m 30 -t ; 虚拟内存分配/proc/vmstat;  
  dmesg(命令adb shell dmesg > ldmesg_kernel.log)是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)
  dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等;  
  dumpsys这个是关于系统所有进程Process的内容都在这个里面,adb shell dumpsys 这个命令还有更详尽的用法,比如adb shell dumpsys meminfo system是查看system这个process的内存信息。
  ListView,如果有mHeaderViewInfos或者mFooterViewInfos,则mAdapter=new HeaderViewListAdapter(mHeaderViewInfos,mFooterViewInfos,adapter);
  软链接(symbolic link)符号链接称为软链接,它是指向另一个文件的特殊文件,这种文件的数据部分仅包含它所要链接文件的路径名。软链接是为了克服硬链接的不足而引入的,软链接不直接使用inode号作为文件指针,而是使用文件路径名作为指针(软链接:文件名 + 数据部分-->目标文件的路径名)。
  硬链接(hard link):该登记项具有一个新的文件名和要连接文件的 inode号,文件的目录登记项就是所谓的文件硬链接(硬链接,目录登记项: 文件名-->文件的inode;文件名可以有多个,但文件inode只是一个)。硬链接不能跨越文件系统,也不能对目录建立硬链接!
  PackageInfo,从manifest开始的所有信息;ApplicationInfo,从applicaiton标签开始。  ActivityInfo,从activity标签开始。
  Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。
  NOR和NAND是非易失闪存技术;NOR适合存储少量代码,读取速度快,写入/擦除速度慢;NAND高存储密度,写入/擦除速度也很快。mtd设备象闪存芯片/小型闪存卡之类的设备,用在嵌入式设备中。
  MTD(Memory Technology Devices)是把手机内置分区给重新分配,HERO的系统结构是这样的:/system占170MB,/cache占130MB,而留给用户使用的/data却只有160MB。MTD就是把/SYS及/chche的没利用空间分配到用户的/data中。
  Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统。Yaffs2能更好的支持大容量NAND FLASH芯片。
  shell执行多个命令:用分号隔开; 用&&隔开,成功则执行下一条命令;  用||隔开,前一个成功则不执行下一条命令。
  bash sehll的命令分为两类,内部命令和外部命令。外部命令是通过系统调用独立的程序实现的,如sed/awk等;内部命令是由特殊的文件格式.def所实现,如cd/history/exec等。
  fork是linux系统调用的,用来创建子进程。环境变量(遗传性是本地变量和环境变量的根本区别)只能单向从父进程传递给子进程。
  两种方法执行shell脚本,新vs当前。新的在scripts文件开头加入#!/bin/sh。  一般的script文件(.sh)是新shell;source(.)是在当前shell执行。exec命令不产生新的子进程,它会把当前shell进程关闭,然后换到后面的的命令继续执行。
  svn与git:git是分布式的,svn不是;git内容按元数据方式存储,svn按文件;git与svn分支不同(git能快速切换);git没有全局的版本号;git的内容存储使用的是SHA-1哈希算法。
  git的push两种方式:SSH方式和HTTPS方式。
  handler出现原因:android的UI操作用户交互(线程安全与同步);android耗时操作放在子线程中;UI线程与子线程交互。
  android中定时器使用:handler与线程的sleep方法;handler的postDelayed方法(需在run方法中handler.postDelayed(this, 2000));handler与timer/TimerTask结合的方法。
  android中常用定时器有系统的AlarmService和Java.util.Timer。待机中仍然计数需AlarmManager的setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,,,);
  AutoCompleteTextView是实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。
  udev是Linux下的设备管理器,它支持即插即用,即自动识别新加入到系统中的外部设备,特别是USB设备。主要管理/dev目录底下的设备节点。udev的一个特点是,它允许指定一系列响应规则,在它侦测到新设备加入的时侯,执行它们。udev要求将这些规则存储在/etc/udev/rules.d/目录下的文件中,该文件名必须以.rules结束。一些系统之中,udev默认的规则存储在/etc/udev/rules.d/50-udev.rules文件中。udev按照字母排序依次解释这些文件中的规则,因此,如果你希望自己添加的规则在默认规则之后处理,那么文件名开头必须大于50,比如51。这就是51-android.rules命名的缘由,它希望自己在默认的udev规则之后处理。另外,简要说一下USB的知识:一个USB设备由两个ID来标识,Vender ID和Product ID,Vender ID由设备制造商向USB执行论坛申请,Product ID则由设备制造商自行分配。
  手机的调试模式:*#*#4636#*#*
  adb insufficient permissions解决方案:切换成root用户,然后#adb kill-server & #adb start-server解决;$sudo chmod a+s adb
  安装busybox:先push到sdcard;#mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system  ;  #chmod 755 busybox   #busybox --install .    #alias ls='busybox ls'
  瑞士军刀是含有许多工具在一个刀身上的折叠小刀,由于瑞士军方为士兵配备这类工具刀而得名。在瑞士军刀中的基本工具常为,圆珠笔、牙签、剪刀、平口刀、开罐器、螺丝起子、镊子等。要使用这些工具时,只要将它从刀身的折叠处拉出来,就可以使用。
  linux下test命令是评估一个表达式;如果条件为真,则返回一个0值。如果表达式不为真,则返回一个大于0的值-也可以将其称为假值。
  内容提供者URI以"content://"开头。All URIs for providers begin with the string "content://". This identifies the data as being controlled by a content provider.
  查询数据库:尽量避免使用外界传入的字符硬拼,避免注入攻击的同时避免查询特殊字符出错。  --- 考虑使用ContentValue;query时,条件用占位符。
  HierarchyView的TreeView的使用。
  fragmentActivity,V4中的,新sdk在Activity中:继承来的getFragmentManager();自己特有的getSupportFragmentManager();使用起来一样,FrameLayout;
  Fragment与Activity通讯:Activity中 getFragmentManager().findFragmentById(R.id.example_fragment); Fragment中,面向接口编程,重写接口的activity去处理,降低耦合度;
  DayFragment中有ViewSwitcher,ViewSwitcher上是DayView;DayView只能利用消息中心把消息传递给DayFragment;也可以面向接口编程,让实现者去处理;
  如何停止服务:mService.stopSelf(); Service是UI线程,能够直接new Handler();
  面向接口编程:通讯录界面处理。
  EventInfoFragment中Utils.getTimeZone(mContext, mTZUpdater)的使用;获取TimeZone,第一时异步查询并添加到配置文件中和回调,不是第一次,查询结果与配置文件不一样时才回调;
  具有处理消息功能的子线程:HandlerThread,内部封装了Looper;mHandler=new ExtendHandler(mHandlerThread.getLooper() );   
  IntentService重写onHandleIntent(mIntent);

  GeneralPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener, OnPreferenceChangeListener{ *** }






利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值