大概有10G的源代碼,一Byte一個字元,也就是說有超過100億個字元,每行按標准80字元來算的話,超過1億行。開放的WinXP系統有2億行,從數量級上來看的話,應該差不多。Android 4.4,是由Google公司製作和研發的代號為KitKat的手機操作系統,於北京時間2013年9月4日凌晨對外公布了該Android新版本的名稱,為Android 4.4(代號 KitKat 奇巧)。據悉,該代號來自雀巢的KitKat巧克力。"Kit Kat"原本是雀巢公司的一款巧克力名稱。谷歌表示,他們非常感謝雀巢授權使用該名稱,但使用的時候會將中間的空格去掉。Android 4.4 KitKat針對RAM佔用進行了優化,甚至可以在一些僅有512MB RAM的老款手機上流暢運行。它也進一步優化了系統在低配硬體上的運行效果, 支持內核同頁合並 KSM,zRAM 交換,似乎是為了更好地在眾多智能穿戴設備上運行。
是指sdk的源碼,還是android操作系統的源碼,不過都有10G左右,另外sdk的源碼是用git管理的,一次下載後,用git check就可以切換到各個版本。Android SDK是用於開發Android上JAVA應用程序的,另外發布Android NDK,可以添加一些C語言寫的鏈接庫,至於Linux代碼,可以在Android源代碼中找到(SDK程序中只有編譯好的測試映像)。應用程序開發用不到Linux代碼(搞嵌入式開發才會用到,而SDK不負責底層開發)。
『貳』 求一個c++小程序源代碼,要求200行以上,給100分,能用再加100
//=================================[說明]=======================================*/
//學生成績管理
//文件名:main.cpp
//------!!!!!!---------BOF-[程序代碼開始]-------------------
#include<iostream>
#include<string>
using namespace std;
//=============<開始定義結構體>===================================================
struct combox
{
int num;
int mark;
string name;
combox *next;
};
//=============<結束定義結構體>===================================================
//=============<開始定義Commonbox類>==============================================
//-----類體開始------------------------
class Commonbox
{
private:
combox *head;
void Swap(combox *,combox *); //交換兩個combox變數的數據域
void Print(combox *); //輸出一combox指定的記錄
combox *Find(int); //查找條例條件的記錄,並返回該記錄的指針
public:
Commonbox()
{
head=NULL;
}
int ListCount(); //統計當前鏈表的記錄總數,返回一個整數
void AddItem(int num, string name, int mark); //添加一條記錄到表尾
void RemoveItem(int); //刪除一條指定的記錄
void List(); //列出當前鏈表中的所有記錄
void Sort(); //對當前鏈表進行排序
void Search(int); //在當前鏈表查找指定記錄並輸出
float Average(); //計算平均成績
};
//-----類體結束------------------------
//-----類成員函數開始----------------------------------
int Commonbox::ListCount() //統計當前鏈表的記錄總數,返回一個整數
{
if (! head)return 0;
combox *p=head;
int n=0;
while (p)
{
n++;
p=p->next;
}
return n;
}
void Commonbox::AddItem(int num, string name, int mark) //添加一條記錄到表尾
{
if (! head)
{
head=new combox;
head->mark=mark;
head->num=num;
head->name=name;
head->next=NULL;
return;
}
combox *t=head;
while (t && t->num!=num)
t=t->next;
if (t)
{
cout<<"操作失敗:學號為"<<num<<"的記錄已經存在!"<<endl;
return;
}
combox *p=head;
while (p->next)p=p->next;
combox *p1=new combox;
p1->num=num;
p1->mark=mark;
p1->name=name;
p1->next=NULL;
p->next=p1;
return;
}
void Commonbox::RemoveItem(int num) //刪除一條指定的記錄
{
combox *t=Find(num);
if (! t)return;
combox *p=head;
//如果要刪除的記錄位於表頭
if (head==t)
{
head=head->next;
delete p;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;
return;
}
while (p->next!=t)p=p->next;
combox *p1=p->next;
p->next=p1->next;
delete p1;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;
return;
}
void Commonbox::Print(combox *p) //輸出一combox指定的記錄
{
cout<<p->num<<"\t\t";
cout<<p->name<<"\t\t";
cout<<p->mark<<endl;
return;
}
void Commonbox::List() //列出當前鏈表中的所有記錄
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return;
}
combox *p=head;
cout<<"共有記錄:"<<ListCount()<<endl;
cout<<"學號\t\t姓名\t\t分數"<<endl;
while (p)
{
Print(p);
p=p->next;
}
cout <<endl;
return;
}
void Commonbox::Search(int num) //在當前鏈表查找指定記錄並輸出
{
cout <<"Searching...."<<endl;
combox *p=Find(num);
if (p)
{
cout<<"學號\t\t姓名\t\t分數"<<endl;
Print(p);
}
cout <<endl;
}
combox *Commonbox::Find(int num)
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return NULL;
}
combox *p=head;
while (p)
{
if (p->num==num)break;
p=p->next;
}
if (! p)
{
cout <<"錯誤:找不到該記錄!\n";
return NULL;
}
return p;
}
void Commonbox::Swap(combox *p1, combox *p2) //交換兩個combox變數的數據域
{
combox *temp=new combox;
temp->num=p1->num;
temp->mark=p1->mark;
temp->name=p1->name;
p1->num=p2->num;
p1->mark=p2->mark;
p1->name=p2->name;
p2->num=temp->num;
p2->mark=temp->mark;
p2->name=temp->name;
}
void Commonbox::Sort() //對當前鏈表進行排序
{
cout <<"Sorting..."<<endl;
if (ListCount()<2) return;
combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL;
int n=ListCount(),i,j;
p=head;
for (i=1;i<n;i++)
{
k=p;
p1=p->next;
for (j=0;j<n-i;j++)
{
if (k->num > p1->num)
{
k=p1;
}
p1=p1->next;
}
if (p!=k)Swap(k,p);
p=p->next;
}
cout <<"Complete successfully!"<<endl<<endl;
return;
}
float Commonbox::Average() //計算平均成績
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return -1;
}
int sum=0,n=0;
combox *p=head;
while (p)
{
sum += p->mark;
p=p->next;
n++;
}
return float(sum)/n;
}
//-----類成員函數結束----------------------------------
//=============<結束定義Commonbox類>==============================================
Commonbox student; //定義全局變數
int Menu()
{
cout <<"===========[主選單:]==========="<<endl;
int n=1,select=-1;
cout <<n++<<".輸入學生成績;"<<endl<<endl;
cout <<n++<<".按學號排序;"<<endl<<endl;
cout <<n++<<".按學號查找記錄;"<<endl<<endl;
cout <<n++<<".刪除由學號指定的記錄;"<<endl<<endl;
cout <<n++<<".列出所有記錄;"<<endl<<endl;
cout <<n++<<".計算平均成績;"<<endl<<endl;
cout <<"0.退出;"<<endl<<endl;
cout <<"[請選擇(輸入相應數字)]:";
cin >>select;
return select;
}
char Exit() //返回一個字元患,用於確認退出
{
char s;
cout<<"確定要退出程序嗎?[Y/N]:";
cin >>s;
return s;
}
void Input(int *num, string *name, int *mark) //輸入學生信息
{
cout <<"請輸入 學號 姓名 分數:";
cin >>*num;
if (*num==-1)return;
cin >>*name>>*mark;
return;
}
void AddNew() //增加記錄
{
int num=0,mark=0;
string name="";
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
Input(&num, &name, &mark);
while (num!=-1)
{
student.AddItem(num,name,mark);
Input(&num, &name, &mark);
}
return;
}
void DoFind() //按學號查找
{
int num;
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
do
{
cout <<"請輸入要查找的學生的學號: ";
cin>>num;
if (num==-1)continue;
student.Search(num);
}
while (num!=-1);
return;
}
void DoDelete() //刪除記錄
{
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
int num;
do
{
cout <<"請輸入要刪除的學生的學號:";
cin>>num;
if (num==-1)continue;
student.RemoveItem(num);
}
while (num!=-1);
return;
}
void ShowAverage() //輸出平均數
{
float avr=student.Average();
if (avr>0)
{
cout<<"共有記錄:\t"<<student.ListCount()<<endl<<endl;
cout<<"平均成績:\t"<<avr<<endl<<endl;
}
return;
}
//-------******<主函數開始>******-------
int main()
{
cout<<"Welcome!\n學生成績管理系統\nVer 1.01\nBy FondBoy\n\n";
int select;
char s;
while (1)
{
select=Menu();
switch (select)
{
case 0: //退出程序
s=Exit();
if (s=='y' || s=='Y')return 0;
break;
case 1: //輸入學生成績
AddNew();
break;
case 2: //按學號排序
student.Sort();
break;
case 3: //按學號查找記錄
DoFind();
break;
case 4: //刪除由學號指定的記錄
DoDelete();
break;
case 5: //列出所有記錄
student.List();
break;
case 6: //輸出平均成績
ShowAverage();
break;
default:
cout<<"無效輸入!"<<endl;
}
}
return 0;
}
//-------******<主函數結束>******-------
//------!!!!!!---------EOF-[程序代碼結束]-------------------
『叄』 如何編寫ros的python程序
1 先建立工作空間~/catkin_ws
參閱http://www.douban.com/note/516838470/ 下的創建工作空間
catkin_create_pkg basic std_msgs rospy
2 在工作空間~/catkin_ws下創建包pkg目錄basic
好處是通過創建包自動生成package.xml和CMakeLists.txt
可參閱http://www.douban.com/note/516843231/
3 在工程目錄下建一個src子目錄和.py文件
源代碼文件:topic_publisher.py
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/env python
import roslib; roslib.load_manifest('basic')
import rospy
from std_msgs.msg import Int32
rospy.init_node('topic_publisher')
pub = rospy.Publisher('counter', Int32)
rate = rospy.Rate(2)
count = 0
while not rospy.is_shutdown():
pub.publish(count)
count += 1
rate.sleep()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
操作步驟如下
liao@liao-eagle:~/catkin_ws$ ls
build devel install src
liao@liao-eagle:~/catkin_ws$ cd src
liao@liao-eagle:~/catkin_ws/src$ ls
basic beginner_tutorials CMakeLists.txt first second
liao@liao-eagle:~/catkin_ws/src$ cd basic/
liao@liao-eagle:~/catkin_ws/src/basic$ ls
CMakeLists.txt package.xml src
liao@liao-eagle:~/catkin_ws/src/basic$ cd src
liao@liao-eagle:~/catkin_ws/src/basic/src$ vi topic_publisher.py
liao@liao-eagle:~/catkin_ws/src/basic/src$ chmod +x topic_publisher.py
4 回到~/catkin_ws目錄下,編譯程序
$ cd ~/catkin_ws
liao@liao-eagle:~/catkin_ws$ catkin_make
5 將當前工程加入到shell環境里去
liao@liao-eagle:~/catkin_ws$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
liao@liao-eagle:~/catkin_ws$ source ~/.bashrc
6 運行程序(需開兩個終端)
liao@liao-eagle:~/catkin_ws$ roscore
liao@liao-eagle:~/catkin_ws$ rosrun basic topic_publisher.py
7 通過rostopic查看相關信息
liao@liao-eagle:~/catkin_ws$ rostopic list
/counter
/rosout
/rosout_agg
『肆』 如何編寫ros的python程序
ROS Indigobeginner_Tutorials-10編寫ROS話題版的Hello World程序(Python版)
我使用的虛擬機軟體:VMware Workstation 11
使用的Ubuntu系統:Ubuntu 14.04.4 LTS
ROS版本:ROS Indigo
1. 前言 :
Hello world程序,在我們編程界,代表學習某種語言編寫的第一個程序。對於ROS機器人操作系統來說,這個Hello World程序就是 : 寫一個簡單的消息發布器(發送) 和 訂閱器(接收)。
2. 准備工作 :
C++的程序都會存放在每個程序包的src文件夾里。Python不同,Python程序都存放在scripts文件夾中, 反正意思都是源文件包。
Step 1 .所以,先在beginner_tutorials軟體包中創建一個scripts文件夾:
$ roscd beginner_tutorials$ mkdir scripts$ cd scripts123
3. 編寫消息發布器節點程序:
如果你懶得去寫的話,你可以使用wget命令, 在github上獲取一個talker.py源代碼。如何獲取呢 ?
Step 2 .開一個終端,輸入下面的命令就可以獲取talker.py:
$ wget
-devel/rospy_tutorials/001_talker_listener/talker.py$ ls
talker.py123
但是我建議你親自動手,寫一寫:手動創建一個talker.py文件在/scripys文件夾里:
$ roscd beginner_tutorials/scripts$ gedit talker.py12
將這上面鏈接里的代碼手動輸入到talker.py文件中。(我就不將代碼貼上來了)
下面我來講解一下代碼:
這些足以說明,hello_world_topic.launch啟動腳本文件,啟動成功。
總結:發布器和訂閱器是很簡單的, 就是簡單的發布一個 自定義的話題。
我之前使用說過:節點之間通訊的方式有兩種 : 話題(rostopic) 和 服務(rosservice)
所以,接下來,我們會講:使用ROS服務來完成ROS版Hello World程序的例子。但是在這之前,我們需要學一學:如何創建自定義的ROS消息和ROS服務,以便ROS服務版的Hello World程序的編寫。
所以下一講,我們來學習:如何創建自定義的ROS消息和ROS服務。