Take you into the world of Android afinal frame

Source: Internet
Author: User
<span id="Label3"></p><span style="line-height: 1.5;"><span style="line-height: 1.5;"><span style="font-size: 1.5em; line-height: 1.5;">1. What is the afinal framework?</span></span></span><p><p>Afinal is an open-source Android ORM and IOC application Development framework that is characterized by its small size and flexibility and low code Intrusion. In Android app development, through the afinal IOC framework, such as UI bindings, event bindings, annotations can be automatically bound. With the afinal ORM framework, No configuration information is required, and a single line of code can be used to add and check the SQLite database of Android. At the same time, afinal embedded in the finalhttp and other easy-to-use tools, you can easily to the HTTP on the line to plead the Operation. The purpose of afinal is to be concise and fast. The contract is larger than the configured way. Try to do everything in one line of Code.</p></p>The various modules of the 2.Afinal framework bring the convenience<p><p>1, finaldb module: Android in the Orm framework, a line of code can be used to increase the deletion check. Support one-to-many, Many-to-one Queries.</p></p><p><p>2. finalactivity module: The IOC framework in android, fully annotated to enable UI binding and event Binding. No need for Findviewbyid and setclicklistener.</p></p><p><p>3, finalhttp module: httpclient to encapsulate HTTP data requests, support Ajax mode Loading.</p></p><p><p>4. Finalbitmap module: when loading bitmap through finalbitmap,imageview, It is not necessary to consider the phenomenon of image dislocation when the Oom and Android containers appear during the bitmap loading process. Finalbitmap can configure the number of thread preempted threads, cache size, Cache path, load Display animation, etc. Finalbitmap's memory Management uses the LRU algorithm, Not using weak references (after android2.3, Google has not recommended the use of weak references, android2.3 after the forced recovery of soft and weak references, details of the official Android document), better management bitmap memory. Finalbitmap can customize the downloader to extend other protocols to display network pictures, such as Ftp. You can also customize the bitmap display, play animations when ImageView display pictures, and so on (default is the gradient animation display).</p></p>3. Bring the afinal frame into your engineering process<p><p>1. Download the afinal jar Package. recommended to git download (https://github.com/yangfuhai/afinal), here not only provides the Afinal jar package, also includes Afinal's source code as well as the detailed Api.</p></p><p><p>2. Add the downloaded jar package to the Android Project. I believe everyone will, but you may also encounter when the Afinal package is added, the activity that inherits Finalactivity will report Java.lang.classNotFound this kind of error, this situation you'd better afinal The package is copied directly into the Lib folder of the Android Project. Then you look at the Android Dependencies pack inside if you have the Afinal package to run the APK again should not be wrong.</p></p><p><p>3. A project that relies on the afinal package also needs to add the permissions it needs: we add the following permissions to the Androidmanifest.xml file:</p></p><p><p></p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <ol class="dp-j" start="1"> <li class="alt"><uses-permission android:name=<span class="string">"android.permission.INTERNET"/></span></li> <li><uses-permission android:name=<span class="string">"android.permission.WRITE_EXTERNAL_STORAGE"/></span></li> </ol> </ol><br><p><p></p></p>Specific use of each module of the 4.Afinal framework<p><p></p></p><p><p>1.FinalDB How to Use:</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <ol class="dp-j" start="1"> <li class="alt">FINALDB db = finaldb.create (this<span class="keyword">); </span></li> <li></li> <li class="alt">User user = <span class="keyword">new user (); </span></li> <li></li> <li class="alt">User.setemail (<span class="string">"[email protected]"); </span></li> <li></li> <li class="alt">User.setid (<span class="number">1); </span></li> <li></li> <li class="alt">User.setname (<span class="string">"michael yang"); </span></li> <li></li> <li class="alt"></li> <li>Db.save (user);</li> </ol> </ol><br><p><p></p></p><p><p>1.FinalActivity How to Use:</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><li class="alt"><span class="keyword">Public <span class="keyword">class Afinaldemoactivity <span class="keyword">extends Finalactivity {</span> </span></span></li></li> <li><li><span class="comment">//no calls to Findviewbyid and Setonclicklistener etc.</span></li></li> <li class="alt"><li class="alt"><span class="annotation">@ViewInject (id=r.id.button,click=<span class="string">"btnclick") button button; </span></span></li></li> <li><li><span class="annotation">@ViewInject (id=r.id.textview) TextView textView; </span></li></li> <li class="alt"><li class="alt"></li></li> <li><li><span class="keyword">public <span class="keyword">void OnCreate (Bundle Savedinstancestate) {</span> </span></li></li> <li class="alt"><li class="alt"><span class="keyword">super.oncreate (savedinstancestate); </span></li></li> <li><li>Setcontentview (r.layout.main);</li></li> <li class="alt"><li class="alt">}</li></li> <li><li><span class="keyword">public <span class="keyword">void Btnclick (View v) {</span> </span></li></li> <li class="alt"><li class="alt">Textview.settext (<span class="string">"text Set Form button"); </span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt">}</li></li> </ol><br><p><p>1.FinalHttp How to Use:</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><li class="alt">Finalhttp fh = <span class="keyword">new Finalhttp (); </span></li></li> <li><li>Fh.get (<span class="string">"http://www.yangfuhai.com", <span class="keyword">new ajaxcallback () {</span> </span></li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">public <span class="keyword">void onloading (<span class="keyword">long count, <span class="keyword">long Current) { <span class="comment">//every 1 seconds automatically callback once</span> </span> </span> </span> </span></li></li> <li class="alt"><li class="alt">Textview.settext (current+<span class="string">"/" +count); </span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">public <span class="keyword">void onsuccess (String t) {</span> </span></li></li> <li class="alt"><li class="alt">Textview.settext (t==<span class="keyword">null?<span class="string">"  Null ": t); </span></span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">public <span class="keyword">void OnStart () {</span> </span></li></li> <li class="alt"><li class="alt"><span class="comment">callback when HTTP request is started//</span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">public <span class="keyword">void onfailure (throwable t, String strMsg) {</span> </span></li></li> <li class="alt"><li class="alt"><span class="comment">//the callback when load fails</span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt">});</li></li> </ol><br><p><p>1. Upload files or submit Data:</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><li class="alt">Ajaxparams params = <span class="keyword">new Ajaxparams (); </span></li></li> <li><li>Params.put (<span class="string">"username", <span class="string">"michael yang"); </span></span></li></li> <li class="alt"><li class="alt">Params.put (<span class="string">"password", <span class="string">"123456"); </span></span></li></li> <li><li>Params.put (<span class="string">"email", <span class="string">"[email protected]"); </span></span></li></li> <li class="alt"><li class="alt">Params.put ("<span class="string">profile_picture", <span class="keyword">new File (<span class="string">"/mnt/sdcard/pic.jpg")); <span class="comment">//upload files</span> </span> </span> </span></li></li> <li><li>Params.put (<span class="string">"profile_picture2", inputstream); <span class="comment">//upload data stream</span> </span></li></li> <li class="alt"><li class="alt">Params.put (<span class="string">"profile_picture3", <span class="keyword">new Bytearrayinputstream (bytes)); <span class="comment">//commit byte stream</span> </span> </span></li></li> <li><li>Finalhttp fh = <span class="keyword">new Finalhttp (); </span></li></li> <li class="alt"><li class="alt">Fh.post (<span class="string">"http://www.yangfuhai.com", params, <span class="keyword">new ajaxcallback () {</span> </span></li></li> <li><li><span class="annotation">@Override</span></li></li> <li class="alt"><li class="alt"><span class="keyword">public <span class="keyword">void onloading (<span class="keyword">long count, <span class="keyword">long Current) {</span> </span> </span> </span></li></li> <li><li>Textview.settext (current+<span class="string">"/" +count); </span></li></li> <li class="alt"><li class="alt">}</li></li> <li><li><span class="annotation">@Override</span></li></li> <li class="alt"><li class="alt"><span class="keyword">public <span class="keyword">void onsuccess (String t) {</span> </span></li></li> <li><li>Textview.settext (t==<span class="keyword">null?<span class="string">"  Null ": t); </span></span></li></li> <li class="alt"><li class="alt">}</li></li> <li><li>});</li></li> </ol><br><p><p>1. Download the file using finalhttp:</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><li class="alt">Finalhttp fh = <span class="keyword">new Finalhttp (); </span></li></li> <li><li>Fh.download (<span class="string">"http://www.xxx.com/download path/xxx.apk", <span class="string">"/mnt/sdcard/testapk.apk", <span class="keyword">new Ajaxcallback () {</span> </span></span></li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">public <span class="keyword">void onloading (<span class="keyword">long count, <span class="keyword">long Current) {</span> </span> </span> </span></li></li> <li class="alt"><li class="alt">Textview.settext (<span class="string">"download progress:" +current+<span class="string">"/" +count); </span></span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt"></li></li> <li><li><span class="annotation">@Override</span></li></li> <li class="alt"><li class="alt"><span class="keyword">public <span class="keyword">void onsuccess (File t) {</span> </span></li></li> <li><li>Textview.settext (t==<span class="keyword">null?<span class="string">"    Null ": t.getabsolutefile (). toString ()); </span></span></li></li> <li class="alt"><li class="alt">}</li></li> <li><li></li></li> <li class="alt"><li class="alt">});</li></li> </ol><br><p><p>1.FinalBitmap How to use (load network pictures on one line of code Fb.display (imageview,url)):</p></p><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><li class="alt"><span class="keyword">Private GridView gridview;</span></li></li> <li><li><span class="keyword">Private Finalbitmap fb; </span></li></li> <li class="alt"><li class="alt"><span class="annotation">@Override</span></li></li> <li><li><span class="keyword">protected <span class="keyword">void OnCreate (Bundle Savedinstancestate) {</span> </span></li></li> <li class="alt"><li class="alt"><span class="keyword">super.oncreate (savedinstancestate); </span></li></li> <li><li>Setcontentview (r.layout.images);</li></li> <li class="alt"><li class="alt"></li></li> <li><li>GridView = (gridview) Findviewbyid (r.id.gridview);</li></li> <li class="alt"><li class="alt">Gridview.setadapter (madapter);</li></li> <li><li></li></li> <li class="alt"><li class="alt">FB = <span class="keyword">new Finalbitmap (this<span class="keyword">). init (); <span class="comment"> Init initialization of the Finalbitmap module must be called</span> </span> </span></li></li> <li><li>Fb.configloadingimage (r.drawable.downloading);</li></li> <li class="alt"><li class="alt"><span class="comment">//can be configured in other teens or not configured, and must call the Init () function after configuration to take effect</span></li></li> <li><li><span class="comment">//fb.configbitmaploadthreadsize (int Size)</span></li></li> <li class="alt"><li class="alt"><span class="comment">//fb.configbitmapmaxheight (bitmapheight)</span></li></li> <li><li>}</li></li> </ol><strong><strong>[java]</strong></strong>View Plaincopy <ol class="dp-j" start="1"> <li class="alt"><p><span class="comment"><span class="comment">///////////////////////////adapter getview///////////////////////////////////////// </p><p> </p><p>public view getview (int position, view  convertview, viewgroup parent)  {</p><p>    imageview  iv;</p><p>   if (convertview == null) {</p><p>        convertview = view.inflate (bitmapcacheactivity.this, r.layout.image_item, null);</p><p>       iv =  ( ImageView)  convertview.findviewbyid (r.id.imageview);</p><p>         iv.setscaletype (scaletype.center_crop);</p><p>       convertview.settag (iv);</p><p>  }else{</p><p>        iv =  (Imag </span></span></li> </ol><p><p></p></p><p><p></p></p><p><p></p></p><p><p></p></p><p><p></p></p><p><p></p></p><p><p><span class="comment">Attached: afnial Demo Address</span></p></p><p><p><span class="comment">http://download.csdn.net/detail/xiaoliu123586/8771259</span></p></p><p><p></p></p><p><p></p></p><p><p></p></p><p><p>Take you into the world of Android afinal frame</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.