<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF155%3AAndroid%3A%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5</id>
		<title>LXF155:Android:программирование - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF155%3AAndroid%3A%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;action=history"/>
		<updated>2026-05-13T04:57:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16529&amp;oldid=prev</id>
		<title>Olkol: /* Ин­ст­ру­мен­та­рий раз­ра­бот­чи­ка Android */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16529&amp;oldid=prev"/>
				<updated>2018-06-27T00:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ин­ст­ру­мен­та­рий раз­ра­бот­чи­ка Android&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 00:03, 27 июня 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Для соз­дания про­грамм, ском­пи­ли­ро­ван­ных в ма­шин­ные ко­ды, нам по­на­до­бит­ся Android Software Development Kit (да­лее – SDK) и Android Native Development Kit (да­лее – NDK). Тра­ди­ци­он­но SDK ис­поль­зу­ет­ся для на­пи­сания про­грамм Android, пред­на­зна­чен­ных для вы­полнения на вир­ту­аль­ной ма­шине (чем мы в этой се­рии занимать­ся не бу­дем).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Для соз­дания про­грамм, ском­пи­ли­ро­ван­ных в ма­шин­ные ко­ды, нам по­на­до­бит­ся Android Software Development Kit (да­лее – SDK) и Android Native Development Kit (да­лее – NDK). Тра­ди­ци­он­но SDK ис­поль­зу­ет­ся для на­пи­сания про­грамм Android, пред­на­зна­чен­ных для вы­полнения на вир­ту­аль­ной ма­шине (чем мы в этой се­рии занимать­ся не бу­дем).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Файл:Pic4_opt.jpeg | |thumb|400px|Создание виртуальной машины для запуска Android.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;NDK пред­на­зна­чен для соз­дания раз­де­ляе­мых биб­лио­тек в ко­дах мик­ро­про­цес­со­ра, ко­то­рые под­клю­ча­ют­ся к при­ло­жениям Android с по­мо­щью ме­ханиз­ма JNI. Эти раз­де­ляе­мые биб­лио­те­ки соз­да­ют­ся для рас­ши­рения доступ­ной при­ло­жениям Android функ­цио­наль­но­сти и для по­вы­шения про­из­во­ди­тель­но­сти в тех слу­ча­ях, когда про­из­во­ди­тель­но­сти вир­ту­аль­ной ма­ши­ны не хва­та­ет.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;NDK пред­на­зна­чен для соз­дания раз­де­ляе­мых биб­лио­тек в ко­дах мик­ро­про­цес­со­ра, ко­то­рые под­клю­ча­ют­ся к при­ло­жениям Android с по­мо­щью ме­ханиз­ма JNI. Эти раз­де­ляе­мые биб­лио­те­ки соз­да­ют­ся для рас­ши­рения доступ­ной при­ло­жениям Android функ­цио­наль­но­сти и для по­вы­шения про­из­во­ди­тель­но­сти в тех слу­ча­ях, когда про­из­во­ди­тель­но­сти вир­ту­аль­ной ма­ши­ны не хва­та­ет.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 140:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 140:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В сле­дую­щей час­ти: зна­ко­мим­ся со спе­ци­фи­че­­ски­­ми воз­мож­но­стя­ми яд­ра и биб­лио­те­ки C для ОС Android.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В сле­дую­щей час­ти: зна­ко­мим­ся со спе­ци­фи­че­­ски­­ми воз­мож­но­стя­ми яд­ра и биб­лио­те­ки C для ОС Android.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==О тер­ми­но­ло­гии==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==О тер­ми­но­ло­гии==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ес­ли сле­до­вать тер­ми­но­ло­гии, при­ня­той в Java (Java Native Interface и т. д.), тер­ми­ном Native сле­ду­ет обо­зна­чать код, вы­пол­няю­щий­ся непо­сред­ст­вен­но на про­цес­со­ре, ми­нуя вир­ту­аль­ную ма­ши­ну. Но, по­сколь­ку мне уже встре­ча­лось при­менение тер­ми­на Native имен­но к про­грам­мам, на­пи­сан­ным для вир­ту­аль­ной ма­ши­ны Android (или про­грамм, ко­то­рые час­тич­но вы­пол­ня­ют­ся в вир­ту­аль­ной ма­шине, а час­тич­но – на же­ле­зе), для сво­их про­грамм, ко­то­рые це­ли­ком вы­пол­ня­ют­ся на же­ле­зе и не ну­ж­да­ют­ся в вир­ту­аль­ной ма­шине, я бу­ду ис­поль­зо­вать тер­мин «про­грам­мы Linux». Этот тер­мин оп­рав­дан по сле­дую­щим при­чи­нам: в ре­зуль­та­те сбор­ки та­ких про­грамм по­лу­ча­ют­ся фай­лы в фор­ма­те ELF; неко­то­рые из этих про­грамм об­ла­да­ют дво­ич­ной со­вмес­ти­мо­стью с дру­ги­ми сис­те­ма­ми ARM Linux; дру­гие про­грам­мы мо­гут быть пор­ти­ро­ва­ны на дру­гие Unix-сис­те­мы с минималь­ны­ми из­менения­ми или во­все без из­менений. По­следнее за­ме­чание не от­но­сит­ся, ра­зу­ме­ет­ся, к тем про­грам­мам, ко­то­рые ис­поль­зу­ют спе­ци­фи­че­­ские воз­мож­но­сти яд­ра Android.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ес­ли сле­до­вать тер­ми­но­ло­гии, при­ня­той в Java (Java Native Interface и т. д.), тер­ми­ном Native сле­ду­ет обо­зна­чать код, вы­пол­няю­щий­ся непо­сред­ст­вен­но на про­цес­со­ре, ми­нуя вир­ту­аль­ную ма­ши­ну. Но, по­сколь­ку мне уже встре­ча­лось при­менение тер­ми­на Native имен­но к про­грам­мам, на­пи­сан­ным для вир­ту­аль­ной ма­ши­ны Android (или про­грамм, ко­то­рые час­тич­но вы­пол­ня­ют­ся в вир­ту­аль­ной ма­шине, а час­тич­но – на же­ле­зе), для сво­их про­грамм, ко­то­рые це­ли­ком вы­пол­ня­ют­ся на же­ле­зе и не ну­ж­да­ют­ся в вир­ту­аль­ной ма­шине, я бу­ду ис­поль­зо­вать тер­мин «про­грам­мы Linux». Этот тер­мин оп­рав­дан по сле­дую­щим при­чи­нам: в ре­зуль­та­те сбор­ки та­ких про­грамм по­лу­ча­ют­ся фай­лы в фор­ма­те ELF; неко­то­рые из этих про­грамм об­ла­да­ют дво­ич­ной со­вмес­ти­мо­стью с дру­ги­ми сис­те­ма­ми ARM Linux; дру­гие про­грам­мы мо­гут быть пор­ти­ро­ва­ны на дру­гие Unix-сис­те­мы с минималь­ны­ми из­менения­ми или во­все без из­менений. По­следнее за­ме­чание не от­но­сит­ся, ра­зу­ме­ет­ся, к тем про­грам­мам, ко­то­рые ис­поль­зу­ют спе­ци­фи­че­­ские воз­мож­но­сти яд­ра Android.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16527&amp;oldid=prev</id>
		<title>Olkol: /* Пре­одо­ление пре­пят­ст­вий */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16527&amp;oldid=prev"/>
				<updated>2018-06-27T00:01:04Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Пре­одо­ление пре­пят­ст­вий&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 00:01, 27 июня 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./adb shell&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./adb shell&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Файл:Pic3_opt.jpeg | |thumb|400px|Программа-менеджер Android SDK.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;пре­доста­вит вам при­ми­тив­ную обо­лоч­ку команд­ной стро­ки на уст­рой­ст­ве, с по­мо­щью ко­то­рой вы мо­же­те вы­звать ути­ли­ту chmod для из­менения ат­ри­бу­тов фай­ла. Ес­ли обе ко­ман­ды вы­полнились успеш­но – по­здравь­те се­бя: ва­ше уст­рой­ст­во иде­аль­но под­хо­дит для изу­чения ОС Android. В этом слу­чае вы да­же мо­же­те вы­полнить файл про­грам­мы непо­сред­ст­вен­но из обо­лоч­ки adb. Но увы, из тех Android-уст­ройств, что по­па­да­ли в мои ру­ки, толь­ко нетбук Toshiba AC-100 ока­зал­ся на­столь­ко «сго­вор­чи­вым». В дру­гих слу­ча­ях уст­рой­ст­ва ли­бо во­об­ще от­ка­зы­ва­лись вы­пол­нять ко­ман­ды push и shell, ли­бо не по­зво­ля­ли вы­полнить ко­ман­ду chmod, без ко­то­рой осталь­ные дей­ст­вия не име­ют смыс­ла.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;пре­доста­вит вам при­ми­тив­ную обо­лоч­ку команд­ной стро­ки на уст­рой­ст­ве, с по­мо­щью ко­то­рой вы мо­же­те вы­звать ути­ли­ту chmod для из­менения ат­ри­бу­тов фай­ла. Ес­ли обе ко­ман­ды вы­полнились успеш­но – по­здравь­те се­бя: ва­ше уст­рой­ст­во иде­аль­но под­хо­дит для изу­чения ОС Android. В этом слу­чае вы да­же мо­же­те вы­полнить файл про­грам­мы непо­сред­ст­вен­но из обо­лоч­ки adb. Но увы, из тех Android-уст­ройств, что по­па­да­ли в мои ру­ки, толь­ко нетбук Toshiba AC-100 ока­зал­ся на­столь­ко «сго­вор­чи­вым». В дру­гих слу­ча­ях уст­рой­ст­ва ли­бо во­об­ще от­ка­зы­ва­лись вы­пол­нять ко­ман­ды push и shell, ли­бо не по­зво­ля­ли вы­полнить ко­ман­ду chmod, без ко­то­рой осталь­ные дей­ст­вия не име­ют смыс­ла.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16525&amp;oldid=prev</id>
		<title>Olkol в 23:54, 26 июня 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16525&amp;oldid=prev"/>
				<updated>2018-06-26T23:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 23:54, 26 июня 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Что та­кое про­грам­ма для ARM Linux==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Что та­кое про­грам­ма для ARM Linux==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Файл:Pic2_opt.jpeg | |thumb|400px|Наша программа в окне терминала Android.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Со­вмес­ти­мость про­грамм­но­го обес­пе­чения с неко­то­рой опе­ра­ци­он­ной сис­те­мой мож­но раз­де­лить на несколь­ко уровней. На са­мом нижнем уровне – ис­поль­зо­вание при­ня­то­го в сис­те­ме фор­ма­та ис­пол­няе­мо­го фай­ла и сис­тем­ных вы­зо­вов. На бо­лее вы­со­ком уровне со­вмес­ти­мость пред­по­ла­га­ет ис­поль­зо­вание при­ло­жением стан­дарт­ных биб­лио­тек опе­ра­ци­он­ной сис­те­мы. Иногда про­бле­му со­вмес­ти­мо­сти на вто­ром уровне мож­но обой­ти пу­тем ста­ти­че­­ской ком­по­нов­ки при­ло­жения с необ­хо­ди­мы­ми ему биб­лио­те­ка­ми (в этом слу­чае при­ло­жение мо­жет не по­ла­гать­ся на биб­лио­те­ки ОС). Но это ре­шение име­ет очень ог­раничен­ную об­ласть при­менения. Мно­гие раз­де­ляе­мые биб­лио­те­ки яв­ля­ют­ся «оберт­ка­ми», ко­то­рые пре­достав­ля­ют при­клад­ным про­грам­мам доступ к раз­лич­ным ком­понен­там сис­те­мы. Ско­рее все­го, сто­ронние ана­ло­ги этих биб­лио­тек, ко­то­рые ста­ти­че­­ски со­б­ран­ная про­грам­ма принесет с со­бой, не бу­дут ра­бо­тать пра­виль­но.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Со­вмес­ти­мость про­грамм­но­го обес­пе­чения с неко­то­рой опе­ра­ци­он­ной сис­те­мой мож­но раз­де­лить на несколь­ко уровней. На са­мом нижнем уровне – ис­поль­зо­вание при­ня­то­го в сис­те­ме фор­ма­та ис­пол­няе­мо­го фай­ла и сис­тем­ных вы­зо­вов. На бо­лее вы­со­ком уровне со­вмес­ти­мость пред­по­ла­га­ет ис­поль­зо­вание при­ло­жением стан­дарт­ных биб­лио­тек опе­ра­ци­он­ной сис­те­мы. Иногда про­бле­му со­вмес­ти­мо­сти на вто­ром уровне мож­но обой­ти пу­тем ста­ти­че­­ской ком­по­нов­ки при­ло­жения с необ­хо­ди­мы­ми ему биб­лио­те­ка­ми (в этом слу­чае при­ло­жение мо­жет не по­ла­гать­ся на биб­лио­те­ки ОС). Но это ре­шение име­ет очень ог­раничен­ную об­ласть при­менения. Мно­гие раз­де­ляе­мые биб­лио­те­ки яв­ля­ют­ся «оберт­ка­ми», ко­то­рые пре­достав­ля­ют при­клад­ным про­грам­мам доступ к раз­лич­ным ком­понен­там сис­те­мы. Ско­рее все­го, сто­ронние ана­ло­ги этих биб­лио­тек, ко­то­рые ста­ти­че­­ски со­б­ран­ная про­грам­ма принесет с со­бой, не бу­дут ра­бо­тать пра­виль­но.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16500&amp;oldid=prev</id>
		<title>Olkol: Olkol переименовал страницу LXF154:Android:программирование в LXF155:Android:программирование: ошибка в номере</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16500&amp;oldid=prev"/>
				<updated>2018-06-26T10:44:43Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol переименовал страницу &lt;a href=&quot;/wiki/LXF154:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&quot; class=&quot;mw-redirect&quot; title=&quot;LXF154:Android:программирование&quot;&gt;LXF154:Android:программирование&lt;/a&gt; в &lt;a href=&quot;/wiki/LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&quot; title=&quot;LXF155:Android:программирование&quot;&gt;LXF155:Android:программирование&lt;/a&gt;: ошибка в номере&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:44, 26 июня 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16434&amp;oldid=prev</id>
		<title>Olkol: /* На­ши пер­вые опы­ты */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16434&amp;oldid=prev"/>
				<updated>2018-06-25T23:42:24Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;На­ши пер­вые опы­ты&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 23:42, 25 июня 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{Врезка|left|Заголовок= По­че­му _start()?|Ширина=30%|Содержание= Ес­ли вы ду­мае­те, что точ­кой вхо­да в про­грам­му яв­ля­ет­ся функ­ция main(), то оши­бае­тесь. При ис­поль­зо­вании GCC по умол­чанию точ­кой вхо­да яв­ля­ет­ся функ­ция _start(), ко­то­рая до­бав­ля­ет­ся ком­по­нов­щи­ком ав­то­ма­ти­че­­ски при ис­поль­зо­вании биб­лио­те­ки вре­мени вы­полнения glibc (с по­мо­щью спе­ци­аль­но­го клю­ча точ­ку вхо­да мож­но из­менить).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Функ­ция _start() под­го­тав­ли­ва­ет вы­зов функ­ции main(), вы­зы­ва­ет main(), а так­же га­ран­ти­ру­ет, что по­сле вы­хо­да из main() про­грам­ма за­вер­шит­ся кор­рект­ным об­ра­зом. Вы мо­же­те за­вер­шить про­грам­му непо­сред­ст­вен­но из main() с по­мо­щью функ­ции exit(). Эта функ­ция иниции­ру­ет сис­тем­ный вы­зов Linux, ко­то­рый тут же за­вер­шит ва­шу про­грам­му. Но обыч­но так не де­ла­ют. В боль­шин­ст­ве про­грамм вы­ход из функ­ции main() осу­ще­ст­в­ля­ет­ся с по­мо­щью опе­ра­то­ра return, а это, са­мо по се­бе, не при­ве­дет к за­вер­шению про­грам­мы. Вы­ход из функ­ции main() пе­ре­да­ет управ­ление все той же функ­ции _start(), ко­то­рая за­вер­ша­ет про­грам­му с по­мо­щью сис­тем­но­го вы­зо­ва exit().&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В на­шем при­ме­ре мы во­об­ще от­ка­за­лись от функ­ции main() (за нена­доб­но­стью), а за­од­но от­ка­за­лись и от биб­лио­те­ки вре­мени вы­полнения (в ОС Android ис­поль­зу­ет­ся соб­ст­вен­ный ва­ри­ант этой биб­лио­те­ки). Вме­сто то­го, что­бы вы­зы­вать стан­дарт­ные функ­ции printf() и exit(), мы ис­поль­зу­ем сис­тем­ные вы­зо­вы Linux на­пря­мую. Тон­кий ва­ри­ант про­грам­мы необ­хо­ди­мо ком­пи­ли­ро­вать с клю­чом -nostdlib, ко­то­рый при­ка­зы­ва­ет ком­по­нов­щи­ку во­об­ще не под­клю­чать биб­лио­те­ку вре­мени вы­полнения к про­грам­ме:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В на­шем при­ме­ре мы во­об­ще от­ка­за­лись от функ­ции main() (за нена­доб­но­стью), а за­од­но от­ка­за­лись и от биб­лио­те­ки вре­мени вы­полнения (в ОС Android ис­поль­зу­ет­ся соб­ст­вен­ный ва­ри­ант этой биб­лио­те­ки). Вме­сто то­го, что­бы вы­зы­вать стан­дарт­ные функ­ции printf() и exit(), мы ис­поль­зу­ем сис­тем­ные вы­зо­вы Linux на­пря­мую. Тон­кий ва­ри­ант про­грам­мы необ­хо­ди­мо ком­пи­ли­ро­вать с клю­чом -nostdlib, ко­то­рый при­ка­зы­ва­ет ком­по­нов­щи­ку во­об­ще не под­клю­чать биб­лио­те­ку вре­мени вы­полнения к про­грам­ме:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 72:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В прин­ци­пе го­во­ря, да­же про­стая воз­мож­ность досту­па к сис­тем­ным вы­зо­вам Linux по­зво­ля­ет про­грам­ме сде­лать не так уж и ма­ло. Но пол­но­цен­ное про­грам­ми­ро­вание на язы­ке C для Android воз­мож­но толь­ко в том слу­чае, ес­ли мы мо­жем за­дей­ст­во­вать в сво­ей про­грам­ме «фир­мен­ные» биб­лио­те­ки Android. А вот тут все ста­но­вит­ся го­раз­до сложнее.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В прин­ци­пе го­во­ря, да­же про­стая воз­мож­ность досту­па к сис­тем­ным вы­зо­вам Linux по­зво­ля­ет про­грам­ме сде­лать не так уж и ма­ло. Но пол­но­цен­ное про­грам­ми­ро­вание на язы­ке C для Android воз­мож­но толь­ко в том слу­чае, ес­ли мы мо­жем за­дей­ст­во­вать в сво­ей про­грам­ме «фир­мен­ные» биб­лио­те­ки Android. А вот тут все ста­но­вит­ся го­раз­до сложнее.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;==Сис­тем­ные вы­зо­вы ARM Linux==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Ме­ра и по­ря­док пе­ре­да­чи ар­гу­мен­тов сис­тем­ных вы­зо­вов ARM Linux со­от­вет­ст­ву­ют та­ко­вым на плат­фор­ме Intel, так что для опи­сания кон­крет­но­го вы­зо­ва мож­но ис­поль­зо­вать до­ку­мен­та­цию по вы­зо­вам для Intel.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;От­но­си­тель­но спе­ци­фи­ки ARM пре­ж­де все­го нуж­но от­ме­тить, что су­ще­ст­ву­ет два ре­жи­ма сис­тем­ных вы­зо­вов – ста­рый и но­вый (но­вый яв­ля­ет­ся ча­стью стан­дар­та EABI). Нынешние яд­ра ARM Linux под­дер­жи­ва­ют оба ре­жи­ма (и в при­ве­ден­ном вы­ше при­ме­ре мы ис­поль­зо­ва­ли ста­рый ва­ри­ант), но ис­поль­зо­вать ре­жим EABI, ра­зу­ме­ет­ся, пред­поч­ти­тельнее. У двух ре­жи­мов мно­го об­ще­го: ар­гу­мен­ты вы­зо­ва пе­ре­да­ют­ся в ре­ги­ст­рах r0–r6, а сам вы­зов вы­пол­ня­ет­ся с по­мо­щью ин­ст­рук­ции SWI. Ог­раничение в 7 ре­ги­ст­ров унас­ле­до­ва­но от Linux x86; на RISC-плат­фор­ме ARM мож­но бы­ло бы ис­поль­зо­вать боль­ше ре­ги­ст­ров.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;При ста­ром ре­жи­ме вы­зо­ва но­мер вы­зо­ва яв­ля­ет­ся ча­стью опе­ран­да ин­ст­рук­ции SWI. Вот как вы­гля­дит вы­зов write() (0 × 04):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r0, де­ск­рип­тор_фай­ла;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r1, ад­рес_бу­фе­ра;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r2, дли­на_бу­фе­ра;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;SWI 0x900004;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;В ре­жи­ме EABI но­мер вы­зо­ва пе­ре­да­ет­ся в ре­ги­ст­ре r7, а опе­ран­дом SWI всегда яв­ля­ет­ся зна­чение 0 × 0. Еще од­но от­ли­чие свя­за­но с пе­ре­да­чей 64-бит­ных ар­гу­мен­тов. В обо­их ре­жи­мах их пе­ре­да­ют в па­ре 32-бит­ных ре­ги­ст­ров, но в ста­ром ре­жи­ме это про­сто два сле­дую­щих неза­ня­тых ре­ги­ст­ра, а в ре­жи­ме EABI – сле­дую­щая па­ра ре­ги­ст­ров, в ко­то­рой пер­вый ре­гистр име­ет чет­ный но­мер. Тот же вы­зов _write() в ре­жи­ме EABI бу­дет вы­гля­деть так:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r0, де­ск­рип­тор_фай­ла;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r1, ад­рес_бу­фе­ра;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r2, дли­на_бу­фе­ра;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;MOV r7, #4;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;SWI 0x0;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;По­ми­мо про­че­го, ме­ж­ду дву­мя ре­жи­ма­ми су­ще­ст­ву­ет од­но, не сра­зу за­мет­ное, но важ­ное раз­ли­чие: ре­жим EABI мо­жет ис­поль­зо­вать­ся как в ре­жи­ме ARM MODE (32-бит­ные ин­ст­рук­ции), так и в бо­лее ком­пакт­ном THUMB MODE. Ста­рый ре­жим не мо­жет ис­поль­зо­вать­ся в THUMB MODE про­сто по­то­му, что чис­ло 0 × 900000 не по­мес­тит­ся в 16-бит­ном опе­ран­де ин­ст­рук­ции SWI ре­жи­ма THUMB.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Пре­одо­ление пре­пят­ст­вий==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Пре­одо­ление пре­пят­ст­вий==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16433&amp;oldid=prev</id>
		<title>Olkol: Новая страница: «Категория:Android    '''Ваши программные наработки не пропадут даром'''  =ARM и Android: Про­грам­м…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=16433&amp;oldid=prev"/>
				<updated>2018-06-25T23:36:41Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Android&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Категория:Android (страница не существует)&quot;&gt;Категория:Android&lt;/a&gt;    &amp;#039;&amp;#039;&amp;#039;Ваши программные наработки не пропадут даром&amp;#039;&amp;#039;&amp;#039;  =ARM и Android: Про­грам­м…»&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF155:Android:%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;amp;diff=16433&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	</feed>