??xml version="1.0" encoding="utf-8" standalone="yes"?>在线观看视频色潮,jizz在线观看中文,国产大片一区http://www.aygfsteel.com/ZircoN/zh-cnWed, 18 Jun 2025 14:45:01 GMTWed, 18 Jun 2025 14:45:01 GMT60API Demos_App/Activityhttp://www.aygfsteel.com/ZircoN/archive/2012/02/24/370128.htmlZircoNZircoNFri, 24 Feb 2012 07:32:00 GMThttp://www.aygfsteel.com/ZircoN/archive/2012/02/24/370128.htmlhttp://www.aygfsteel.com/ZircoN/comments/370128.htmlhttp://www.aygfsteel.com/ZircoN/archive/2012/02/24/370128.html#Feedback0http://www.aygfsteel.com/ZircoN/comments/commentRss/370128.htmlhttp://www.aygfsteel.com/ZircoN/services/trackbacks/370128.htmlW一个AnimationQ展CZ从一个activity启动另一个activity时的两种动画效果Q主要是q个ҎQ?div>
1 overridePendingTransition(int enterAnim, int exitAnim)
q个Ҏ跟在startActivity()或者finish()之后调用来指定一个效?/code>Q第一个参数是下一个activity出现的效果,W二个参数是该activity退出的效果?br />关于animationQ可以参考这文章:http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html?br />W二个CustomDialogActivityQ展CZ一个activity如何使用自定义themeQ其看h像一个dialogQ在ApiDemos Manifest.xml中对应该activity的标{下Q?br />有该属性:android:theme="@style/Theme.CustomDialog"Q引用了一个自定义的themeQ在styles.xml文g中:
1 <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
2     <item name="android:windowBackground">@drawable/filled_box</item>
3 </style>
l承自android内置的Theme.DialogQ位?base/core/res/res/values/themes.xml。其backgroundZ个自定义的shapeQ在filled_box.xml中:
1 <shape xmlns:android="http://schemas.android.com/apk/res/android">
2     <solid android:color="#f0600000"/>
3     <stroke android:width="3dp" color="#ffff8080"/>
4     <corners android:radius="3dp" />
5     <padding android:left="10dp" android:top="10dp"
6         android:right="10dp" android:bottom="10dp" />
7 </shape>
solid填充Qstroke描边Qcorners圆角Qpadding内间距,关于shapeQ可以看下这文章:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6087.html?br />q儿分n一个展现渐变色背景的方法,除了ps一张渐变色的图片,也可以用shapeQ将上面代码?lt;solid>标签替换?lt;gradient>代表渐变:
1 <gradient  
2      android:startColor="#52adcd"  
3      android:endColor="#1c87b1"  
4      android:angle="0" /> <!-  angle代表角度Q?是从左往x变,可以多用几个D一?nbsp;。这个标{不能和solid标签同时出现?!>
W三个CustomTitleQ如何自定义一个titleQ而不是用一个activity原来的UtitleQ主要是3句代码:
1 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
2 setContentView(R.layout.custom_title);
3 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
W四个DialogActivity展示了如何一个activity看上d一个弹出的dialogQ跟W二个实例类|也是在其activity标签上加上theme属性,不过q次引用?br />是系l自qdialog themeQ@android:style/Theme.DialogQ其ơ跟W三个实例类|也用了requestWindowFeature()q个ҎQ关于这个方法,
|上有很多介l,大家可以自己搜一下,l个参考文章:http://www.cnblogs.com/salam/archive/2010/11/30/1892143.html?br />W五个看下PersistentState和SaveRestoreStateQ先说SaveRestoreState展示?code>onSaveInstanceState()保存activity状态的效果Q其实本w没做什么,
onSaveInstanceState()是当该activity可能会被pȝdestory旉认调用的Q默认会记录布局中每个view的状态,如edittext的内宏Vcheckedbox的选中状态,
你需要做的就是给每个控g加一个idQ没有id的话是无法保存状态的Q可以看下源码PhoneWindow.java中的saveHierarchyState()。一般情况下不需要你重写
onSaveInstanceState()Q但是如果你想保存除了UI状态之外的其他附加信息Q如一个成员变量的值等可以覆写,但要注意Q一定要调用
super.onSaveInstanceState()Q以上都可以在官Ҏ档里扑ֈ?br />再说下PersistentStateQ这个展CZ使用SharedPreferences持久化的保存edittext的状态,包括光标的位|。主要是在onPause()里保存,onResume()里还原,
不多说了Q测试这两个例子Ӟ可以修改两个edittext中的值然后旋转手机,使其横屏Q这样那个activity会destory然后再create?br />W六个看下ReceiveResultQ主要展CZstartActivityForResult()的用法,q个可以用于比如从一个activity跛_另一个activity去选择一个email地址或是一张图片,
选择完毕时结果再q回l上一个activity。我按照程来介l下q个Ҏ的用法,ReceiveResult-->SendResultQ首先先要调?br />startActivityForResult(Intent intent, int requestCode)启动SendResultQ然后在SendResultq个activity中处理,处理完调用setResult (int resultCode, Intent data)Q?br />q回到ReceiveResult中,注意setResult()后要调用finish()。最后呢在ReceiveResult中要覆写onActivityResult(int requestCode, int resultCode, Intent data)ҎQ?br />来处理返回的l果Q一些细节大家自q看例子。关于requestCodeQ可以理解成A跌{到B同时也可以蟩转到C或DQ区分是跛_哪个activityQ而resultCodeQ可以理?br />成B可以q回多个|OK或NOT OK{,区分一个activityq回的多个|可以ȝ下Redirectionq个例子Q加强对startActivityForResult()的理解?br />q有个知识点说下Q在receiveResult的onCreate()中,mResults.setText(mResults.getText(), TextView.BufferType.EDITABLE);关于
void android.widget.TextView.setText(CharSequence text, BufferType type)q个ҎQ可以参考这文章:http://litonggang.iteye.com/blog/507200
最好结合源码来看这个方法,从TextView的setText( CharSequence text, BufferType type ) --> Editable.java --> SpannableStringBuilder.java。实际上是将原来?div>的CharSequence text扩展成SpannableStringBuilderQ以使其happend{扩展的ҎQ这儿还有个工厂模式Q有旉多读L码还是不错的?br />W七个看下QuickContactsDemoQ首先是QuickContactBadgeq个控gQ自q下配|文件。接着是ResourceCursorAdapterQ这个adapterl承在CursorAdapterQ它覆写?br />CursorAdapter的newView()ҎQ其实就一句代码,用Inflater填充指定的xml文gQ所以在q个例子的newView()Ҏ中首先调用super().newView()ҎQ将构造函C指定?br />那个layout转成viewQ然后bindView()里填充数据。最后是个viewHolder~存layout中的viewQviewHolder保证了对控g的缓存,减少了每ơfindViewById()的开销Q是优化listview的一个较好的方式?br />
1 final static class ContactListItemCache {
2         public TextView nameView;
3         public QuickContactBadge photoView;
4         public CharArrayBuffer nameBuffer = new CharArrayBuffer(128);
5  }
6 ContactListItemCache cache = new ContactListItemCache();
7 cache.nameView = (TextView) view.findViewById(R.id.name);
8 cache.photoView = (QuickContactBadge) view.findViewById(R.id.badge);
9 view.setTag(cache);
最后那3个activityQ一个透明背景activity、一个透明q且模糊不清背景activity、一个用你的壁纸做背景的activity都用了自定义的themeQ可以自q看,攑ֈ自己的应用中?br />
q篇ȝ先到q,有些乱?/code>



ZircoN 2012-02-24 15:32 发表评论
]]>
API Demos_入口http://www.aygfsteel.com/ZircoN/archive/2012/01/10/368140.htmlZircoNZircoNTue, 10 Jan 2012 03:01:00 GMThttp://www.aygfsteel.com/ZircoN/archive/2012/01/10/368140.htmlhttp://www.aygfsteel.com/ZircoN/comments/368140.htmlhttp://www.aygfsteel.com/ZircoN/archive/2012/01/10/368140.html#Feedback1http://www.aygfsteel.com/ZircoN/comments/commentRss/368140.htmlhttp://www.aygfsteel.com/ZircoN/services/trackbacks/368140.html先看下ApiDemosApplication.javaq个c,q个cȝ承自ApplicationQ主要作用是保存一些全局的状态,q个cM在你的应用程序创建时便被实例化,
q个cȝcdQ便是AndroidManifest.xml ?<application> tag的name。比如在q个cMonCreate()中:
PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
q个Ҏ会从default_values.xml中填充默认的值到com.example.android.apis_preferences.xmlq个默认的配|文件中厅R?br />q个配置文g?data/data/com.example.android.apis/shared_prefs/下。根据官方APIQThis should be called by the application's main activity.
q样其他的activity、service{才能相应的使用q个配置文g?br />接着看下ApiDemos.javaQ这个类充分应用了AndroidManifest.xmlq个文g。首先这个类是程序入口,一个ListActivityQ这个类会重复利用到?br />在其onCreate()Ҏ里,W一ơ时path=""即prefix=""Q接着看getData()q个ҎQ这个方法就是给q个listview填值的Q填入的值放在myDataq个List<Map>中:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
PackageManager pm 
= getPackageManager();
List
<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
q段代码AndroidManifest.xml文g中所有Intent action是ACTION_MAIN及category?span style="color: #000000;">CATEGORY_SAMPLE_CODE的activity全部取得。放入list中?br />下面是一些逻辑了,应该能看懂?br />
ResolveInfo info = list.get(i);
CharSequence labelSeq 
= info.loadLabel(pm);
取得所有activity的labelQlabel的格式类gApp/Activity/Hello Worldq样的,如果我们点击App或者Activity时还是调用ApiDemos.javaq个c,只是listview的内?br />在变而已Q在browseIntent()q个Ҏ中?br />每个列表Ҏ按照首个字符的ascii码排序的Q在sDisplayNameComparator中可以看刎ͼ列表还可以按照你输入的字符qo?br />


ZircoN 2012-01-10 11:01 发表评论
]]>
eclipse下导入android源码http://www.aygfsteel.com/ZircoN/archive/2011/12/24/367118.htmlZircoNZircoNSat, 24 Dec 2011 08:53:00 GMThttp://www.aygfsteel.com/ZircoN/archive/2011/12/24/367118.htmlhttp://www.aygfsteel.com/ZircoN/comments/367118.htmlhttp://www.aygfsteel.com/ZircoN/archive/2011/12/24/367118.html#Feedback0http://www.aygfsteel.com/ZircoN/comments/commentRss/367118.htmlhttp://www.aygfsteel.com/ZircoN/services/trackbacks/367118.html1、将 源码目录\development\ide\eclipse 中的.classpath复制到源码根目录下?br />2、更改eclipse~存讄
    在eclipse安装根目录下修改eclipse.ini   
    -Xms128m
    -Xmx512m
    -XX:MaxPermSize=256m
3、将 源码目录\development\ide\eclipse 中的android-formatting.xml和android.importorder导入eclipse
    android-formatting.xml用来配置eclipse~辑器的代码风格Qandroid.importorder用来配置eclipse的import的顺序和l构?
    window->preferences->java->Code style->Formatter中导入android-formatting.xml
    window->preferences->java->Code style->Organize Imports中导入android.importorder?br />4、导入源?br />    最好重新换一个workspaceQ因为源码是比较庞大的。新建Java ProjectQ指定一个nameQ接着use default location勾掉Q指定到你源码的目录下,finish?br />


ZircoN 2011-12-24 16:53 发表评论
]]>
32位Ubuntu 11.10下android2.3.7源码下蝲与编译小l?/title><link>http://www.aygfsteel.com/ZircoN/archive/2011/11/13/363452.html</link><dc:creator>ZircoN</dc:creator><author>ZircoN</author><pubDate>Sun, 13 Nov 2011 15:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/ZircoN/archive/2011/11/13/363452.html</guid><wfw:comment>http://www.aygfsteel.com/ZircoN/comments/363452.html</wfw:comment><comments>http://www.aygfsteel.com/ZircoN/archive/2011/11/13/363452.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ZircoN/comments/commentRss/363452.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ZircoN/services/trackbacks/363452.html</trackback:ping><description><![CDATA[<div> <p><span>1?/span><span>我是?/span>vmware<span>下安?/span>ubuntu 11.10<span>的,q个|上资料很多Q不多说了。我l?/span>ubuntu<span>分了</span>25g<span>盘?/span>1g<span>内存?/span></p><p><span>2?/span><span>请参?/span><a >http://source.android.com/source</a><span>?/span></p> <p><span>初始化编译环?/span></p><p><span>查一下包是否安装Q?/span></p> <p>Python 2.4-2.7</p> <p>Git 1.5.4 <span>或更高版?/span></p> <p><span>没有话可?/span>sudo apt-get install..<span>安装一?/span></p><p><span></span></p><div><p>JDK 6 因ؓ是编译android2.3以上Q如果编?.2以下需要JDK5</p></div><p><span>安装</span>JDK6<span>Q?/span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ sudo add</span><span style="color: #000000; ">-</span><span style="color: #000000; ">apt</span><span style="color: #000000; ">-</span><span style="color: #000000; ">repository </span><span style="color: #000000; ">"</span><span style="color: #000000; ">deb http://archive.canonical.com/ lucid partner</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />$ sudo apt</span><span style="color: #000000; ">-</span><span style="color: #000000; ">get update<br />$ sudo apt</span><span style="color: #000000; ">-</span><span style="color: #000000; ">get install sun</span><span style="color: #000000; ">-</span><span style="color: #000000; ">java6</span><span style="color: #000000; ">-</span><span style="color: #000000; ">jdk</span></p></div><p><span>如果下蝲速度不行Q可以先?/span>ubuntu<span>的更新源Ҏ|易的源Q可参考:</span><a >http://bolg.malu.me/html/2010/279.html</a><span>?/span></p> <p><span>其他需要安装的包:</span></p> <p><span>我安装了如下包:官网上那?/span>64<span>位需要安装的包,我是</span>32<span>位的有些不一栗?/span></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ sudo apt</span><span style="color: #000000; ">-</span><span style="color: #000000; ">get install git</span><span style="color: #000000; ">-</span><span style="color: #000000; ">core gnupg flex bison gperf libsdl1.</span><span style="color: #000000; ">2</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev libesd0</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev libwxgtk2.</span><span style="color: #000000; ">6</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev build</span><span style="color: #000000; ">-</span><span style="color: #000000; ">essential zip curl libncurses5</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev zlib1g</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev x11proto</span><span style="color: #000000; ">-</span><span style="color: #000000; ">core</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev libx11</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev libgl1</span><span style="color: #000000; ">-</span><span style="color: #000000; ">mesa</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dev g</span><span style="color: #000000; ">++-</span><span style="color: #000000; ">multilib mingw32 tofrodos python</span><span style="color: #000000; ">-</span><span style="color: #000000; ">markdown libxml2</span><span style="color: #000000; ">-</span><span style="color: #000000; ">utils</span></p></div> <p><span>3?/span><span>下面开始下载源?/span></p> <p><span>首先安装</span>repo(<span>是一个便?/span>git<span>理的工?/span>)</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ mkdir </span><span style="color: #000000; ">~/</span><span style="color: #000000; ">bin<br />$ PATH</span><span style="color: #000000; ">=~/</span><span style="color: #000000; ">bin:$PATH<br />$ curl https:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">$ chmod a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">x </span><span style="color: #000000; ">~/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">repo</span></p></div><p><span>初始?/span>repo client</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ mkdir android2.</span><span style="color: #000000; ">3.7</span><span style="color: #000000; "><br />$ cd android2.</span><span style="color: #000000; ">3.7</span></p></div><p><span>初始?/span>repo<span>Q我是用的下面的地址Q用官|地址时出C|络错误</span></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ repo init </span><span style="color: #000000; ">-</span><span style="color: #000000; ">u http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">android.googlesource.com/platform/manifest.git -b android-2.3.7_r1</span></p></div> <p><span>按照提示输入用户名和邮箱?/span></p> <p><span>接着</span><span></span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ repo sync</span></p></div><p><span>开始同步源码,Ҏ你的|速,我的持箋?/span>50<span>分钟左右?/span></p> <p><span>q有一步验?/span>git tags<span>可参照官|。下完后可以在刚才创徏?/span>android2.3.7<span>文g夹下看见已下载的源码?/span></p> <p><span>4?/span><span>开始编?/span></p> <p><span>初始化:</span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ source build</span><span style="color: #000000; ">/</span><span style="color: #000000; ">envsetup.sh<br />$ lunch full</span><span style="color: #000000; ">-</span><span style="color: #000000; ">eng</span></p></div><p><span>上面代表~译的一?/span>target<span>Q?/span>full<span>是针?/span>emulator<span>~译全部包括</span>app<span>、输入法{,</span>eng<span>是指针对开发者编译,有最高权限。具体可参见官网?/span></p> <p><span>接着可以编译了Q在源码目录下直?/span>make<span>pQ需要一D|间?/span></p> <p><span>~译q程中有几个问题需要指Z下:</span></p> <p><span>问题</span>1<span>Q?/span></p> <p><span>׃我们?/span>32<span>位系l,所以有些文仉要修改一下:?/span></p> <p>./external/clearsilver/cgi/Android.mk </p> <p>./external/clearsilver/java-jni/Android.mk </p> <p>./external/clearsilver/util/Android.mk </p> <p>./external/clearsilver/cs/Android.mk</p> <p><span>四个文g中的</span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">LOCAL_CFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">m64<br />LOCAL_LDFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">m64 <br /></span></p></div><p><span>注释掉,或者将</span>“64”<span>换成</span>“32”</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">LOCAL_CFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">m32<br />LOCAL_LDFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">m32 <br /></span></p></div><p><span>然后Q将</span>./build/core/main.mk <span>中的</span></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">ifneq (</span><span style="color: #000000; ">64</span><span style="color: #000000; ">,$(findstring </span><span style="color: #000000; ">64</span><span style="color: #000000; ">,$(build_arch))) <br /></span></p></div> <p><span>改ؓQ?/span></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">ifneq (i686,$(findstring i686,$(build_arch))) <br /></span></p></div> <p><span>问题</span>2<span>Q?/span></p> <div> <p><span>frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void</span>  <span>android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive] make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1</span></p> </div> <p><span>如下解决Q?/span></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ gedit frameworks</span><span style="color: #000000; ">/</span><span style="color: #000000; ">base</span><span style="color: #000000; ">/</span><span style="color: #000000; ">libs</span><span style="color: #000000; ">/</span><span style="color: #000000; ">utils</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Android.mk</span></p></div> <p>下面一?/p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">LOCAL_CFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">DLIBUTILS_NATIVE</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; "> $(TOOL_CFLAGS)</span></p></div> <p>Ҏ<br /></p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">LOCAL_CFLAGS </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">DLIBUTILS_NATIVE</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; "> $(TOOL_CFLAGS) –fpermissive</span></p></div><p><span></span></p> <p><span>问题</span>3<span>Q?/span></p> <p><span><command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default] <br /> </span></p><p><span><built-in>:0:0: note: this is the location of the previous definition cc1plus: all warnings being treated as errors </span></p> <p><span>make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1 </span></p> <p><span>q是׃</span>11.10<span>?/span>gcc<span>版本q高造成的,可参考这文章修改:</span><a >http://hi.baidu.com/designhouse/blog/item/fec5cdbf8d6a231618d81fc1.html</a><span>?/span></p> <p><span>x~译完毕?/span></p><p><span>make~译的ƈ不是所有内容,不包含内核和SDK?/span></p><p>映像生成在out/target/product/generic下:android源码~译后得到system.img,ramdisk.img,userdata.img映像文g。其中, ramdisk.img是一个分区映像文Ӟ在kernel启动Ӟramdisk被用来调用initQ以及把真正的root file system mounth。system.img包括了主要系l,pȝapp{,会被挂蝲?下,可对应查?/system该目录,可以发现在其下app/下有一些系l自带的应用E序。userdata.img包括了一些用h据,被挂载到/data下,对应可查?/data/目录Qemulator加蝲q?个映像文件?/p><p>5、编译SDK</p><p>~译SDK可以得到与源码同步的SDKQ还会生成一些toolsQ在源码根目录下Q?/p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ sudo make PRODUCT</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sdk</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sdk</span></p></div><p>~译生成的SDK在out/host/linux-x86/SDK下。之后如果在ubuntu下用eclipseq行开发,可以使用你编译的SDK?/p><p>下面在模拟器中q行镜像Q徏议切到root用户下,首先配置几个环境变量Q将自己~译的SDK设ؓ优先U最高,在源码根目录下执行:<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ update</span><span style="color: #000000; ">-</span><span style="color: #000000; ">alternatives </span><span style="color: #000000; ">--</span><span style="color: #000000; ">install </span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">AndroidSDK AndroidSDK .</span><span style="color: #000000; ">/</span><span style="color: #000000; ">out</span><span style="color: #000000; ">/</span><span style="color: #000000; ">host</span><span style="color: #000000; ">/</span><span style="color: #000000; ">linux</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x86</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sdk</span><span style="color: #000000; ">/</span><span style="color: #000000; ">android</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sdk_eng.root_linux</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x86 </span><span style="color: #000000; ">255</span></p></div><p>q样会在/etc/<span style="color: #000000; ">alternatives下生成一个指向该SDK目录的Yq接</span><span style="color: #000000;">AndroidSDK</span>Q这个目录主要存放一些系l默认打开的程序的信息和配|。那?usr/bin/AndroidSDK指向这个Yq接。接着执行:<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">gedit </span><span style="color: #000000; ">~/</span><span style="color: #000000; ">.bashrc</span></p></div><p>在文件末添加:</p><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">export ANDROID_SDK_HOME</span><span style="color: #000000; ">=/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">AndroidSDK<br />export PATH</span><span style="color: #000000; ">=</span><span style="color: #000000; ">$ANDROID_SDK_HOME</span><span style="color: #000000; ">/</span><span style="color: #000000; ">tools:$PATH<br />export ANDROID_PRODUCT_OUT</span><span style="color: #000000; ">=~/</span><span style="color: #000000; ">android2.</span><span style="color: #000000; ">3.7</span><span style="color: #000000; "></span><span style="color: #000000; ">/</span><span style="color: #000000; "></span><span style="color: #000000; ">out</span><span style="color: #000000; ">/</span><span style="color: #000000;">target</span><span style="color: #000000; ">/</span><span style="color: #000000; ">product</span><span style="color: #000000; ">/</span><span style="color: #000000; ">generic</span></p></div><p>接着可以执行:</p><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000;">$ emulator</span></p></div><p>q行的就是你~译的映像。执行emulator 命oӞ如果不带M参数Q则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文gQ?</p><p>Android镜像文g则默认用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img。模拟器q行需要这四个文gQ如果你~译了内核则可以使用自己的Kernel镜像Q可用于androidUL{?/p><p>6、单独编译模?/p><p>如果你不想编译整个系l,想~译某一个应用程序,可以使用mmm命oQ用之前,在源码目录下先要执行Q?/p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ build</span><span style="color: #000000; ">/</span><span style="color: #000000; ">envsetup.sh<br /></span></p></div><p>q样会生成一些命令,有m即make、mm~译当前目录下所有模块、mmm~译指定目录下所有模块。你可以把packages/apps/Music应用的application nameҎMyMusic(AndroidManifest.xml?Q然后执行:</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ mmm packages</span><span style="color: #000000; ">/</span><span style="color: #000000; ">apps</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Music</span></p></div><p>在out/target/product/generic/system/app中就可以看见Music.apkQ然后执行:</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><p><span style="color: #000000; ">$ make snod</span></p></div><p>重新生成system.img?/p><p>7、问题:ubuntu下搭建eclipse~译android源码环境Q将会另写一文章? </p></div><img src ="http://www.aygfsteel.com/ZircoN/aggbug/363452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ZircoN/" target="_blank">ZircoN</a> 2011-11-13 23:17 <a href="http://www.aygfsteel.com/ZircoN/archive/2011/11/13/363452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android APK反编译工具及Ҏhttp://www.aygfsteel.com/ZircoN/archive/2011/11/12/363576.htmlZircoNZircoNSat, 12 Nov 2011 05:20:00 GMThttp://www.aygfsteel.com/ZircoN/archive/2011/11/12/363576.htmlhttp://www.aygfsteel.com/ZircoN/comments/363576.htmlhttp://www.aygfsteel.com/ZircoN/archive/2011/11/12/363576.html#Feedback0http://www.aygfsteel.com/ZircoN/comments/commentRss/363576.htmlhttp://www.aygfsteel.com/ZircoN/services/trackbacks/363576.html一、反~译得到xml配置
如果只想从apk中抠一些图出来Q直接把.apkҎ.rar解压Q图片即在res下面?br />如果x看xml配置Q资源文件等Q则用下面的ҎQ先下蝲工具 http://code.google.com/p/android-apktool/ ?br />
apktool1.4.1.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2解压到同一个文件夹Q有三个文gQaapt.exeQapktool.batQapktool.jar?br />接着cmd到命令行Qcd到该目录Q输入:apktool d **.apk ** 。解释:apktool d 需要反~译的apk文g 反编译输出的文g夏V这样就可以到res下查看xml配置{了?br />你可以对其修改,已达到汉化或者去q告的目的。然后执行apktool b **(你反~译出来的文件夹) 重新生成一个新的apk?*/dist/下?br />二、反~译得到源码
需要系在两个工P1、dex2jar 地址Q?a >http://code.google.com/p/dex2jar/downloads/list 下蝲dex-translator-0.0.9.3.zip。作用是apk中的.dex转化?jar 2、jd-guiQ地址Q?a >http://java.decompiler.free.fr/ q个很熟悉了Q将.class反编译成.javaQ除了有windows版的.exeq有对应的eclipse插g可供下蝲?br />接着?apkҎ.rar解压得到classes.dex文gQ将其放到dex-translator-0.0.9.3.zip解压的目录,命o行下cd到该目录下,执行dex2jar.bat classes.dex。则得到一个classes_dex2jar.jarQ然后运行jd-gui打开该jar包,可以查看源码。现在很多apk都会防止被反~译Q主要是工程下proguard.cfgL作用Q具体可以google?br />


ZircoN 2011-11-12 13:20 发表评论
]]>
NDK安装结http://www.aygfsteel.com/ZircoN/archive/2011/10/17/361472.htmlZircoNZircoNMon, 17 Oct 2011 12:45:00 GMThttp://www.aygfsteel.com/ZircoN/archive/2011/10/17/361472.htmlhttp://www.aygfsteel.com/ZircoN/comments/361472.htmlhttp://www.aygfsteel.com/ZircoN/archive/2011/10/17/361472.html#Feedback0http://www.aygfsteel.com/ZircoN/comments/commentRss/361472.htmlhttp://www.aygfsteel.com/ZircoN/services/trackbacks/361472.html一?/span>NDK介绍

NDK 提供了一pd的工P帮助开发者快速开?/span>CQ或C++Q的动态库Qƈ能自动将so?/span>java应用一h包成apk。这些工具对开发者的帮助是巨大的?/span>NDK 集成了交叉编译器Qƈ提供了相应的mk文g隔离CPU、^台?/span>ABI{差异,开发h员只需要简单修?/span>mk 文gQ指?/span>哪些文g需要编?/span>?/span>~译Ҏ要?/span>{)Q就可以创徏?/span>so?/span>NDK 可以自动地将so?/span>Java \应用一h包,极大地减M开发h员的打包工作。比较简单的_NDK是一套交叉编译工P它可以帮你把你用C?/span>C++书写的代码,~译?/span>.soQ类g win下的.dllQ格式的文gQ你可以在你的AndroidE序当中?/span>Java语言Q?/span>JNIQ调用这些代码?/span>

二、安?/span>cygwin

׃NDK~译代码时必要用到make?/span>gccQ所以你必须先搭Z?/span>linux环境Q?/span> cygwin是一个在windowsq_上运行的unix模拟环境,它对于学?/span>unix/linux操作环境Q或者从unix?/span>windows的应用程?/span> ULQ非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编?/span>C?/span>C++代码了。下面我们一步一步的安装cygwin吧?/span>

首先?/span>www.cygwin.com下蝲setup.exe?/span>

然后默认配置nextQ选择自pq的镜像站点准备下蝲安装包列表?/span>

q里列出后面开?/span>NDK用得着的包Q?/span>autoconf2.1?/span>automake1.10?/span>binutils?/span>gcc-core?/span>g++?/span>gcc4-core?/span>gcc4-g++?/span>gdb?/span>pcre?/span>pcre-devel?/span>gawk?/span>make(宁可多?/span>,不能?/span>)Q最好再装个vim?/span>search需要安装的包,?/span>skipQ把它变成数字版本格式,要确?/span>Bin变成叉P?/span>SrcҎ源码Q这个就没必要选了。就可以q行安装了。如下图举例Q?/span>


下面试一?/span>cygwin是不是已l安装好了?/span>

q行cygwinQ在弹出的命令行H口输入Q?/span>cygcheck -c cygwin命oQ会打印出当?/span>cygwin的版本和q行状态,如果status?/span>ok的话Q则cygwinq行正常?/span>

然后依次输入gcc –vQ?/span>g++  --versionQ?/span>make –versionQ?/span>gdb –versionq行试Q?/span>(注意I格?/span>-)如果都打印出版本信息和一些描qC息,非常高兴的告诉你Q你?/span>cygwin安装完成了!

三、配|?/span>NDK环境变量

1、下?/span>NDKQ我下的最新的android-ndk-r6-windows.zipQ直接解?/span>

2、首先找?/span>cygwin的安装目录,扑ֈ一?/span>home\<你的用户?/span>>\.bash_profile文g?/span>

3、可以直接用C本打开.bash_profile文gQ添?/span>NDKROOT=/cygdrive/<你的盘符>/<android ndk 目录> 例如Q?/span>NDK=/cygdrive/e/software/android-ndk-r6,然后export NDKROOT?/span>NDKROOTq个名字随意取?/span>

4、打开cygwinQ输?/span>env | grep NDKROOTQ若昄你刚才键入的|则表明配|成功。说明一下,?/span>r4版本之前Q需要输?/span>build/host-setup.sh配置环境Q这个在NDK目录中的doc目录下的OVERVIEW.TXT有说明:Previous releases required that you run the 'build/host-setup.sh'script to configure your NDK. This step has been removed completely in release 4

四、编?/span>NDK自带的例?/span>

1、运?/span>cygwinQ输?/span>cd /cygdrive/<android ndk目录>/samples/hello-jni

2、输?/span>$NDK/ndk-buildQ执行成功后Q它会自动生成一?/span>libs目录Q把~译生成?/span>.so文g攑֜里面?/span>($NDK是调用我们之前配|好的环境变量,ndk-build是调?/span>ndk的编译程?/span>)?/span>

3、此时去hello-jni?/span>libs目录下看有没有生成的.so文gQ如果有Q你?/span>ndkp行正常?/span>

4?/span>eclipse中新?/span>android工程Q选择W二,如下图,可以跑h了,然后可以研究下其他例子?/span>

 

五?/span>eclipse中集?/span>CDT

?/span>eclipse中集?/span>c/c++开发环境。首先登?/span>http://www.eclipse.org/cdt/downloads.phpQ找到对应你Eclipse版本?/span>CDT插g的在U安装地址?/span> 然后eclipse里点Help菜单Q找?/span>Install New Software菜单Q下面就不说了,你可能会遇到Duplicate location重复路径的错误,q时你可以选择Available Software Sites,扑ֈ那个CDT安装的地址Q把其状态设|成Enablep了?/span>

六、配|?/span>c/c++~译器下ơ说



ZircoN 2011-10-17 20:45 发表评论
]]>
վ֩ģ壺 ϲ| | ɽ| պ| ԰| | | | ϲ| Զ| | | ¤| ɳƺ| ֳ| ˮ| ľ˹| ɫ| մ| ʯ| ͬ| | | ̶| ƽ| ׶| ˮ| | | غ| | ƽ| | | ˮ| | ˷| | | ʼ| ޶|