<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_梦书之家(移动开发)</title><subtitle type="text">你有一个苹果，我有一个苹果，我们交换一下，一人还是一个苹果；你有一个思想，我有一个思想，我们交换一下，一人就有两个思想。 ——肖伯纳</subtitle><id>http://feed.cnblogs.com/blog/u/12624/rss</id><updated>2012-01-19T10:38:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/12624/rss"/><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2012/01/05/2312822.html</id><title type="text">Android 修改App的包名</title><summary type="text">鉴于有时候需要为了满足SB的市场的需求，因此，在编写程序的时候，注意将不相关的部分都放在同一个 PackageName下，否则导致修改起来很麻烦，又容易出错。而且修改包名，应该按照如下的操作进行：1.选择要修改的包名;2.右键 -&amp;gt;Refactor, 能选的都选上。相关的部分，即为了满足两个包也能同时安装在同一个手机上而不影响相互的功能，需要将以下的相关类所在的包名修改:1.service类2.DataProvider类以及相关的URI3.receiver类以及相关的IntentAction4.AppWidget类修改完包名，还应将所有的Activity都过一遍。</summary><published>2012-01-05T02:52:00Z</published><updated>2012-01-05T02:52:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/05/2312822.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/05/2312822.html"/><content type="html">&lt;p&gt;鉴于有时候需要为了满足SB的市场的需求，因此，在编写程序的时候，注意将不相关的部分&lt;/p&gt;&#xD;
&lt;p&gt;都放在同一个 PackageName下，否则导致修改起来很麻烦，又容易出错。&lt;/p&gt;&#xD;
&lt;p&gt;而且修改包名，应该按照如下的操作进行：&lt;/p&gt;&#xD;
&lt;p&gt;1.选择要修改的包名;&lt;/p&gt;&#xD;
&lt;p&gt;2.右键 -&amp;gt;Refactor, 能选的都选上。&lt;/p&gt;&#xD;
&lt;p&gt;相关的部分，即为了满足两个包也能同时安装在同一个手机上而不影响相互的功能，&lt;/p&gt;&#xD;
&lt;p&gt;需要将以下的相关类所在的包名修改:&lt;/p&gt;&#xD;
&lt;p&gt;1.service类&lt;/p&gt;&#xD;
&lt;p&gt;2.DataProvider类以及相关的URI&lt;/p&gt;&#xD;
&lt;p&gt;3.receiver类以及相关的IntentAction&lt;/p&gt;&#xD;
&lt;p&gt;4.AppWidget类&lt;/p&gt;&#xD;
&lt;p&gt;修改完包名，还应将所有的Activity都过一遍。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2312822.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/05/2312822.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2012/01/02/2310441.html</id><title type="text">2011年个人总结</title><summary type="text">2011年就干了4件大事1)该办的婚事都办了2)和我家那位在项目时间比较紧的情况下，仍然挤出时间去马尔代夫度蜜月3)就在度完蜜月后的不久，去英国伦敦出了趟差，费用Nokia全出4)终于着手自己的第一个产品，也是本人的第一个Android产品，用户数刚刚破百万。20121)努力使自己的产品用户数破千万，目标很有挑战性2)就是多看些书，尤其是技术的书籍，另外就多学些经济方面的知识。</summary><published>2012-01-02T13:56:00Z</published><updated>2012-01-02T13:56:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/02/2310441.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/02/2310441.html"/><content type="html">&lt;p&gt;&lt;strong&gt;2011年就干了4件大事&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;1)该办的婚事都办了&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;2)和我家那位在项目时间比较紧的情况下，仍然挤出时间去马尔代夫度蜜月&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;3)就在度完蜜月后的不久，去英国伦敦出了趟差，费用Nokia全出&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;4)终于着手自己的第一个产品，也是本人的第一个Android产品，用户数刚刚破百万。&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="background-color: #ffffff;"&gt;2012&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;1)努力使自己的产品用户数破千万，目标很有挑战性&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span style="background-color: #ffffff;"&gt;2)就是多看些书，尤其是技术的书籍，另外就多学些经济方面的知识。&lt;/span&gt;&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2310441.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2012/01/02/2310441.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291420.html</id><title type="text">一个已知的Andorid Bug</title><summary type="text">一个EditText, 只要调用了setMovementMethod(LinkMovementMethod.getInstance())对其设置，那么在获取焦点时，会崩掉。01-06 07:59:08.669: E/AndroidRuntime(2421): Uncaught handler: thread main exiting due to uncaught exception01-06 07:59:08.764: E/AndroidRuntime(2421): java.lang.IndexOutOfBoundsException: charAt: -2 &amp;lt; 001-06 07:</summary><published>2011-12-17T14:37:00Z</published><updated>2011-12-17T14:37:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291420.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291420.html"/><content type="html">&lt;p&gt;一个EditText, 只要调用了setMovementMethod(LinkMovementMethod.getInstance())对其设置，那么在获取焦点时，会崩掉。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;01-06 07:59:08.669: E/AndroidRuntime(2421): Uncaught handler: thread main exiting due to uncaught exception&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): java.lang.IndexOutOfBoundsException: charAt: -2 &amp;lt; 0&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:110)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.text.TextUtils.getCapsMode(TextUtils.java:1573)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.view.inputmethod.BaseInputConnection.getCursorCapsMode(BaseInputConnection.java:273)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.widget.TextView.onCreateInputConnection(TextView.java:4482)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:942)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1114)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.view.inputmethod.InputMethodManager.onWindowFocus(InputMethodManager.java:1143)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1829)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.os.Handler.dispatchMessage(Handler.java:99)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.os.Looper.loop(Looper.java:123)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at android.app.ActivityThread.main(ActivityThread.java:4363)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at java.lang.reflect.Method.invokeNative(Native Method)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at java.lang.reflect.Method.invoke(Method.java:521)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)&#xD;
01-06 07:59:08.764: E/AndroidRuntime(2421): 	at dalvik.system.NativeStart.main(Native Method)&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2291420.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291420.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291041.html</id><title type="text">用zergRush来破解</title><summary type="text">mengshu@lbq:~/DooMLoRD_v3_ROOT-zergRush-busybox-su$ adb shell &amp;quot;/data/local/tmp/zergRush&amp;quot;[**] Zerg rush - Android 2.2/2.3 local root[**] (C) 2011 Revolutionary. All rights reserved.[**] Parts of code from Gingerbreak, (C) 2010-2011 The Android Exploid Crew.[+] Found a GingerBread ! 0x0002e1</summary><published>2011-12-17T05:24:00Z</published><updated>2011-12-17T05:24:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291041.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291041.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;mengshu@lbq:~/DooMLoRD_v3_ROOT-zergRush-busybox-su$ adb shell &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/data/local/tmp/zergRush&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[**] Zerg rush - Android &lt;span style="color: #800080;"&gt;2.2&lt;/span&gt;/&lt;span style="color: #800080;"&gt;2.3&lt;/span&gt; local root&lt;br /&gt;[**] (C) &lt;span style="color: #800080;"&gt;2011&lt;/span&gt; Revolutionary. All rights reserved.&lt;br /&gt;&lt;br /&gt;[**] Parts of code &lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; Gingerbreak, (C) &lt;span style="color: #800080;"&gt;2010&lt;/span&gt;-&lt;span style="color: #800080;"&gt;2011&lt;/span&gt; The Android Exploid Crew.&lt;br /&gt;&lt;br /&gt;[+] Found a GingerBread ! &lt;span style="color: #800080;"&gt;0x0002e118&lt;/span&gt;&lt;br /&gt;[+] Found a Samsung, running Samsung mode&lt;br /&gt;[*] Scooting ...&lt;br /&gt;[*] Sleeping a bit (~40s)...&lt;br /&gt;[*] Waking !&lt;br /&gt;[*] Sending &lt;span style="color: #800080;"&gt;149&lt;/span&gt; zerglings ...&lt;br /&gt;[*] Sleeping a bit (~40s)...&lt;br /&gt;[*] Waking !&lt;br /&gt;[*] Sending &lt;span style="color: #800080;"&gt;189&lt;/span&gt; zerglings ...&lt;br /&gt;[+] Zerglings found a way to enter ! &lt;span style="color: #800080;"&gt;0x18&lt;/span&gt;&lt;br /&gt;[+] Overseer found a path ! &lt;span style="color: #800080;"&gt;0x00030610&lt;/span&gt;&lt;br /&gt;[*] Sleeping a bit (~40s)...&lt;br /&gt;[*] Waking !&lt;br /&gt;[*] Sending &lt;span style="color: #800080;"&gt;189&lt;/span&gt; zerglings ...&lt;br /&gt;[+] Overseer found a path ! &lt;span style="color: #800080;"&gt;0x000306d8&lt;/span&gt;&lt;br /&gt;[*] Sleeping a bit (~40s)...&lt;br /&gt;[*] Waking !&lt;br /&gt;[*] Sending &lt;span style="color: #800080;"&gt;189&lt;/span&gt; zerglings ...&lt;br /&gt;[+] Zerglings caused crash (good news): &lt;span style="color: #800080;"&gt;0x40322cd4&lt;/span&gt; &lt;span style="color: #800080;"&gt;0x0074&lt;/span&gt;&lt;br /&gt;[*] Researching Metabolic Boost ...&lt;br /&gt;[+] Speedlings on the go ! &lt;span style="color: #800080;"&gt;0xafd198db&lt;/span&gt; &lt;span style="color: #800080;"&gt;0xafd395df&lt;/span&gt;&lt;br /&gt;[*] Sleeping a bit (~40s)...&lt;br /&gt;[*] Waking !&lt;br /&gt;[*] Sending &lt;span style="color: #800080;"&gt;181&lt;/span&gt; zerglings ...&lt;br /&gt;&lt;br /&gt;[+] Rush did it ! It&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;s a GG, man !&lt;/span&gt;&lt;span style="color: #800000;"&gt;&lt;br /&gt;&lt;/span&gt;[+] Killing ADB and restarting &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; root... enjoy!&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2291041.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/17/2291041.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/12/13/2285660.html</id><title type="text">总结下 2011年个人阅读的书籍</title><summary type="text">专业技术1. 《Java核心技术：卷Ⅰ基础知识（原书第8版）》2. 《HTML、XHTML、CSS与JavaScript入门经典》: HTML部分还没看完，客户端开发需要了解下服务器端开发的知识。管理类1. 《发现利润区（白金版，《商业周刊》最佳商业畅销书）》2. 《商业的常识》3. 《再造卓越》4. 《从优秀到卓越（珍藏版）》5. 《基业长青（珍藏版） 》6. 《X光下看腾讯》： 对照2011年腾讯的表现就感觉很失望。7. 《海底捞你学不会》：公司同事的书籍, 花了一周末看完的，看这本书，感觉像在被洗脑。小说1.《杜拉拉升职记》(全4套) ： 职场新人必看,外企人士必看2. 林语堂全集10：</summary><published>2011-12-13T02:10:00Z</published><updated>2011-12-13T02:10:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/13/2285660.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/13/2285660.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;strong&gt;专业技术&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1. 《Java核心技术：卷Ⅰ基础知识（原书第8版）》&lt;/p&gt;&#xD;
&lt;p&gt;2. 《HTML、XHTML、CSS与JavaScript入门经典》: HTML部分还没看完，客户端开发需要了解下服务器端开发的知识。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;管理类&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1. 《发现利润区（白金版，《商业周刊》最佳商业畅销书）》&lt;/p&gt;&#xD;
&lt;p&gt;2. 《商业的常识》&lt;/p&gt;&#xD;
&lt;p&gt;3. 《再造卓越》&lt;/p&gt;&#xD;
&lt;p&gt;4. 《从优秀到卓越（珍藏版）》&lt;/p&gt;&#xD;
&lt;p&gt;5. 《基业长青（珍藏版） 》&lt;/p&gt;&#xD;
&lt;p&gt;6. 《X光下看腾讯》： 对照2011年腾讯的表现就感觉很失望。&lt;/p&gt;&#xD;
&lt;p&gt;7. 《海底捞你学不会》：公司同事的书籍, 花了一周末看完的，看这本书，感觉像在被洗脑。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;小说&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.《杜拉拉升职记》(全4套) ： 职场新人必看,外企人士必看&lt;/p&gt;&#xD;
&lt;p&gt;2. 林语堂全集10：唐人街（精装）&lt;/p&gt;&#xD;
&lt;p&gt;3. 《李可乐抗拆记》&lt;/p&gt;&#xD;
&lt;p&gt;4. 《浮沉2》： 期待结局&lt;/p&gt;&#xD;
&lt;p&gt;5. 《百年孤独》：只看了3章&lt;/p&gt;&#xD;
&lt;p&gt;6. 《批评官员的尺度：《纽约时报》诉警察局长沙利文案》&lt;/p&gt;&#xD;
&lt;p&gt;7. 《红与黑》&lt;/p&gt;&#xD;
&lt;p&gt;8. 《春宴》：思维的跳跃性太大了。作者把自己与主人公标榜得太过孤芳自赏了，但也免不了庸俗。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;社科类&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.《免费&amp;mdash;&amp;mdash;商业的未来》&lt;/p&gt;&#xD;
&lt;p&gt;2.《FBI教你破解身体语言(白金升级版)》&lt;/p&gt;&#xD;
&lt;p&gt;3. 《我们改变了互联网，还是互联网改变了我们？》&lt;/p&gt;&#xD;
&lt;p&gt;4 .《长尾理论2.0》&lt;/p&gt;&#xD;
&lt;p&gt;5.&amp;nbsp; 《中国通史（全七册）》： 只看了先秦部分而且还差3章&lt;/p&gt;&#xD;
&lt;p&gt;6.&amp;nbsp; 《英语口语900句》 --- 只看了3章 挑着看&lt;/p&gt;&#xD;
&lt;p&gt;7.&amp;nbsp; 《金字塔原理 》看了一半，实在看不下去了，不知道是不是翻译的问题&lt;/p&gt;&#xD;
&lt;p&gt;8.&amp;nbsp; 《中国为什么要改革：思忆父亲胡耀邦》&lt;/p&gt;&#xD;
&lt;p&gt;9. 《胡耀邦传（第1卷）（1915-1976）》&lt;/p&gt;&#xD;
&lt;p&gt;10. 《乔布斯传：神一样的传奇》&lt;/p&gt;&#xD;
&lt;p&gt;11. 《怪诞行为学：可预测的非理性》&lt;/p&gt;&#xD;
&lt;p&gt;12. 《史蒂夫&amp;middot;乔布斯传》: 还好忍住了，在伦敦机场看到12.5英镑的英文版的，估计米文是看不完的。买了该本就不要买 《乔布斯传：神一样的传奇》了。&lt;/p&gt;&#xD;
&lt;p&gt;13. 《领导话题》&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;阅读时间与场所&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;俗话说的好：时间就像海绵，只要愿挤总还是有的。很多书都是在地铁上看的，上下班途中，还有就是跟老婆出去逛街的时候；另外就是去耀莱成龙国际影城&lt;/p&gt;&#xD;
&lt;p&gt;排队换团购票的时候；出去旅行的途中、飞机上、机场、海边等等。&lt;/p&gt;&#xD;
&lt;p&gt;明年争取都看点技术方便的书籍，2011年偏像社科类了，:-)。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;鸣谢&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;另外，特别感谢我那贤惠的妻子能够腾出她心爱的青年文摘的空间给我放这些书籍，我们家那个书柜已经放满了。&lt;/p&gt;&#xD;
&lt;p&gt;因此，今年是我工作后，看得书是最多也最杂的当然不算刚毕业的那年看的金庸全套小说。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2285660.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/13/2285660.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/12/10/2283146.html</id><title type="text">Android 短信数据库与联系人数据下的.db-wal文件</title><summary type="text">Android 2.3开始采用Sqlite 3.7，而SQLite 3.7开始引入WAL Mode(Write Ahead Log),一种新的事务控制机制,所以我们会在系统的短信与联系人的数据库下看到.db-wal的文件格式，如图所示。引入的目的是为了保证数据库中的一致性，避免程序发生崩溃的时候也能保证数据库的一致性。所以，这就是为什么第3方的程序有时能够正常读到联系人的数据，有时却读不到的原因，用户遇到这种情况，最好重启下机器。WAL文件格式的详细说明见: http://www.sqlite.org/fileformat2.html其中提到:A WAL file consists of a </summary><published>2011-12-10T03:26:00Z</published><updated>2011-12-10T03:26:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/10/2283146.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/10/2283146.html"/><content type="html">&lt;p&gt;Android 2.3开始采用Sqlite 3.7，而SQLite 3.7开始引入WAL Mode(Write Ahead Log),一种新的事务控制机制,&lt;/p&gt;&#xD;
&lt;p&gt;所以我们会在系统的短信与联系人的数据库下看到.db-wal的文件格式，如图所示。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/9070/2011121011241240.png" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;引入的目的是为了保证数据库中的一致性，避免程序发生崩溃的时候也能保证数据库的一致性。所以，这就是为什么&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em title=""&gt;&lt;/em&gt;第3方的程序有时能够正常读到联系人的数据，有时却读不到的原因，用户遇到这种情况，最好重启下机器。&lt;/p&gt;&#xD;
&lt;p&gt;WAL文件格式的详细说明见: http://www.sqlite.org/fileformat2.html&lt;/p&gt;&#xD;
&lt;p&gt;其中提到:&lt;/p&gt;&#xD;
&lt;p&gt;A WAL file consists of a header followed by zero or more "frames". Each frame records the revised content of a single page from the database file. All changes to the database are recorded by writing frames into the WAL. Transactions commit when a frame is written that contains a commit marker. A single WAL can and usually does record multiple transactions. Periodically, the content of the WAL is transferred back into the database file in an operation called a "checkpoint".&lt;/p&gt;&#xD;
&lt;p&gt;A single WAL file can be reused multiple times. In other words, the WAL can fill up with frames and then be checkpointed and then new frames can overwrite the old ones. A WAL always grows from beginning toward the end. Checksums and counters attached to each frame are used to determine which frames within the WAL are valid and which are leftovers from prior checkpoints.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2283146.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/10/2283146.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/12/06/2278309.html</id><title type="text">Android 2.0以上的系统 短信的thread_id必须设置一个，我晕</title><summary type="text">1. SmsProvider.javaif (((threadId == null) || (threadId == 0)) &amp;amp;&amp;amp; (address != null)) { values.put(Sms.THREAD_ID, Threads.getOrCreateThreadId( getContext(), address)); }Threads.getOrCreateThreadId 调用该函数后，根据号码来查找联系人，但如果找不到的话，就在会话中重建一个会话。2. Mm...</summary><published>2011-12-06T09:53:00Z</published><updated>2011-12-06T09:53:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/06/2278309.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/06/2278309.html"/><content type="html">&lt;p&gt;1. SmsProvider.java&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;if (((threadId == null) || (threadId == 0)) &amp;amp;&amp;amp; (address != null)) {&#xD;
                values.put(Sms.THREAD_ID, Threads.getOrCreateThreadId(&#xD;
                                   getContext(), address));&#xD;
            }&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;Threads.getOrCreateThreadId 调用该函数后，根据号码来查找联系人，但如果找不到的话，就在会话中重建一个会话。&lt;/p&gt;&#xD;
&lt;p&gt;2. MmsProvider.java 也有以下的代码&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;if (((threadId == null) || (threadId == 0)) &amp;amp;&amp;amp; (address != null)) {&#xD;
                finalValues.put(Mms.THREAD_ID, Threads.getOrCreateThreadId(getContext(), address));&#xD;
            }&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2278309.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/12/06/2278309.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/11/19/2255566.html</id><title type="text">看来真不能直接将.so文件直接添加到Android的JAR包了</title><summary type="text">如果直接在一个JAR中的/libs/armeabi下放个XXX.SO文件，然后导出成JAR包的后，如A.JAR,在一个Android的程序中引用这个A.JAR，那么编译的时候就会出现一下的错误：The library &amp;#39;A.jar&amp;#39; contains native libraries that will not run on the device.The following libraries were found:- libs/armeabi/libXXX.so 网上搜素索了下，还是没有找到解决方法。只能采用如下的方式:1.像科大讯飞那样(/Msc/assets/lib/ms</summary><published>2011-11-19T14:09:00Z</published><updated>2011-11-19T14:09:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/19/2255566.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/19/2255566.html"/><content type="html">&lt;p&gt;如果直接在一个JAR中的/libs/armeabi下放个XXX.SO文件，然后导出成JAR包的后，如A.JAR,&lt;/p&gt;&#xD;
&lt;p&gt;在一个Android的程序中引用这个A.JAR，那么编译的时候就会出现一下的错误：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;The library 'A.jar' contains native libraries that will not run on the device.&#xD;
The following libraries were found:&#xD;
- libs/armeabi/libXXX.so&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;网上搜素索了下，还是没有找到解决方法。&lt;/p&gt;&#xD;
&lt;p&gt;只能采用如下的方式:&lt;/p&gt;&#xD;
&lt;p&gt;1.像科大讯飞那样(/Msc/assets/lib/msc.jet:文件前4个字节为:.ELF,而且文件末尾可以看到类是JNI的函数&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/9070/2011111922172582.png" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;直接将.SO文件改个扩展名，然后放到assert中，导出到JAR中，然后在启动的时候/或者首次被调用的时候将其拷贝到&lt;/p&gt;&#xD;
&lt;p&gt;调用程序的目录下,手动加载SO库文件&lt;/p&gt;&#xD;
&lt;p&gt;2.就是直接将JAR中的.SO文件放到目标程序的/libs/armeabi下，即可。&lt;/p&gt;&#xD;
&lt;p&gt;(以上提到的.SO文件都是针对ARM架构的，如果是x86的，注意将上文中的相应目录修改成/libs/x86/目录即可)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;总之：Android将某个工程打成JAR包的时候，最好只包括源代码，另外就是可以包含一些文件，如assert或者自己定义的一些文件个数，&lt;/p&gt;&#xD;
&lt;p&gt;但不要保护资源文件(/res下所有文件内容都不要放在JAR包中)。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2255566.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/19/2255566.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/11/17/2252945.html</id><title type="text">Project has no default.properties file!</title><summary type="text">升级新版的ADT后，工程中的default.properties文件变成了project.properties，所以如果是旧版本的SDK的话，需要将project.properties改成default.properties，然后重新导入就可以了。sigh,Google怎么老是变来变去的 太不靠谱了。</summary><published>2011-11-17T09:18:00Z</published><updated>2011-11-17T09:18:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/17/2252945.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/17/2252945.html"/><content type="html">&lt;p&gt;升级新版的ADT后，工程中的default.properties文件变成了project.properties，所以如果是旧版本的SDK的话，&lt;/p&gt;&#xD;
&lt;p&gt;需要将project.properties改成default.properties，然后重新导入就可以了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;sigh,Google怎么老是变来变去的 太不靠谱了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2252945.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/17/2252945.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mengshu-lbq/archive/2011/11/04/2236421.html</id><title type="text">Linux使用valgrind来检测程序的内存泄漏</title><summary type="text">1.到http://valgrind.org/下载最新版本的valgrind2.加压后，可以查看README文件，参照readme的指示进行如下的操作: 1). Run ./configure, with some options if you wish. The only interesting one is the usual --prefix=/where/you/want/it/installed. 2). Run &amp;quot;make&amp;quot;. 3). Run &amp;quot;make install&amp;quot;, possibly as root if the destinatio</summary><published>2011-11-04T08:36:00Z</published><updated>2011-11-04T08:36:00Z</updated><author><name>梦书</name><uri>http://www.cnblogs.com/mengshu-lbq/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/04/2236421.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/04/2236421.html"/><content type="html">&lt;p&gt;1.到http://valgrind.org/下载最新版本的valgrind&lt;/p&gt;&#xD;
&lt;p&gt;2.加压后，可以查看README文件，参照readme的指示进行如下的操作:&lt;/p&gt;&#xD;
&lt;p&gt;1). Run ./configure, with some options if you wish.&amp;nbsp; The only interesting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; one is the usual --prefix=/where/you/want/it/installed.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 2). Run "make".&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 3). Run "make install", possibly as root if the destination permissions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; require that.&amp;nbsp; ---&lt;span style="color: #ff0000;"&gt; Ubuntu下需要root权限,即应该这样运行: sudo make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 4). See if it works.&amp;nbsp; Try "valgrind ls -l".&amp;nbsp; Either this works, or it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bombs out with some complaint.&amp;nbsp; In that case, please let us know&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (see www.valgrind.org).&lt;/p&gt;&#xD;
&lt;p&gt;可能会出现以下的错误：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;valgrind:  Fatal error at startup: a function redirection&#xD;
valgrind:  which is mandatory for this platform-tool combination&#xD;
valgrind:  cannot be set up.  Details of the redirection are:&#xD;
valgrind:  &#xD;
valgrind:  A must-be-redirected function&#xD;
valgrind:  whose name matches the pattern:      index&#xD;
valgrind:  in an object with soname matching:   ld-linux.so.2&#xD;
valgrind:  was not found whilst processing&#xD;
valgrind:  symbols from the object with soname: ld-linux.so.2&#xD;
valgrind:  &#xD;
valgrind:  Possible fixes: (1, short term): install glibc's debuginfo&#xD;
valgrind:  package on this machine.  (2, longer term): ask the packagers&#xD;
valgrind:  for your Linux distribution to please in future ship a non-&#xD;
valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)&#xD;
valgrind:  that exports the above-named function using the standard&#xD;
valgrind:  calling conventions for this platform.  The package you need&#xD;
valgrind:  to install for fix (1) is called&#xD;
valgrind:  &#xD;
valgrind:    On Debian, Ubuntu:                 libc6-dbg&#xD;
valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo&#xD;
valgrind:  &#xD;
valgrind:  Cannot continue -- exiting now.  Sorry.&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;以上错误，是因为在Ubuntu下还需要一个LIB：libc6-dbg&lt;/p&gt;&#xD;
&lt;p&gt;运行：sudo apt-get install libc6-dbg 以安装libc6-dbg&lt;/p&gt;&#xD;
&lt;p&gt;然后再次运行： valgrind ls -l&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;使用的时候，可以按照如下的方式使用：&lt;/p&gt;&#xD;
&lt;p&gt;valgrind --tool=memcheck --leak-check=full ./hellworld&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mengshu-lbq/aggbug/2236421.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mengshu-lbq/archive/2011/11/04/2236421.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
